我添加了一個自定義屬性,以我的工作簿中的對象,如:
的Apache POI讀取自定義屬性
((XSSFWorkbook)workBook).getProperties().getCustomProperties().addProperty("fileNameSuffix" , "testName");
現在我該怎麼回去看了一遍。
爲什麼沒有像getProperty(String key)
這樣的方法?
我添加了一個自定義屬性,以我的工作簿中的對象,如:
的Apache POI讀取自定義屬性
((XSSFWorkbook)workBook).getProperties().getCustomProperties().addProperty("fileNameSuffix" , "testName");
現在我該怎麼回去看了一遍。
爲什麼沒有像getProperty(String key)
這樣的方法?
我想辦法做到這一點,但我真的不喜歡這種方式
List<CTProperty> customProperties = workBook.getProperties().getCustomProperties().getUnderlyingProperties().getPropertyList();
String fileNameSuffix = "";
for(int i = 0 ; i < customProperties.size() ; i++) {
CTProperty property = customProperties.get(i);
if (customProperties.get(i).getName().equals("testName"))
fileNameSuffix = property.getLpwstr(); // getLpwstr() will return the value of the property
}
你的意思是一樣的方法POIXMLProperties.CustomProperties.getProperty(String)?我認爲這應該做你想做的。那麼,假設你至少有足夠新的Apache POI版本!
但是,請注意,它返回一個CTProperty對象,它是相當低級別的,並且沒有明確的類型。你必須調用各種isSetXXX
方法來確定它是什麼類型,然後getXXX
來獲得價值。
有一個例子如何在POIXMLPropertiesTextExtractor
Thanx男人。這有幫助。 – Soosh 2014-09-07 04:19:24