2014-08-29 39 views
8

我想了解Apache POI的某些部分。例如,我試圖從現有的文件中獲取文本(或表格等)。例如,there is a method getParagraph(..CTP p) in XWPFDocument
它返回「帶有CTP類p的段落」。但什麼是CTP類?我查看了文檔的xml結構,但沒有發現任何類似的東西。因此,我不知道如何首先調用方法。 There is also a method getTable(CTTbl CTTbl)爲同一個XWPFDocument,它返回「一個表由其CTtbl對象。什麼是Apache POI中的CTP,CTTbl類(對象)?

似乎有一個CP *東西的每個部分/數據類型的ooxml文件,所以我想了解如何工作而且從文檔看,這些方法似乎是直接獲取元素而不將它們粘貼到集合中或猜測其位置的唯一直接方法

回答

7

CTx類是XMLBeans wrappers它們是自動生成的發佈OOXML規範XML Schema文件

如果文件中的xml元素是p之一,則生成的XMLBeans包裝器對於OOXML將是CTP。如果它是table,那麼它將是CTTable。 xml元素的名稱空間將放到類的包中,所以如果你有兩個具有相同本地名稱但名稱空間不同的不同元素,那麼你將能夠確定你想要的是哪一個。

如果您有選擇,請勿使用CT類。它們是低級別的,並且需要您瞭解底層文件格式的結構和格式。它們通常只用於高級用例。

對於常見用例,幾乎所有您希望做的事情都可以通過Apache POI usermodel包裝類來實現,只有在您可以的情況下才能使用。