我已将自定义属性添加到我的工作簿对象中,如:
((XSSFWorkbook)workBook).getProperties().getCustomProperties().addProperty("fileNameSuffix" , "testName");
现在我怎么能再读回来。
为什么没有getProperty(String key)
这样的方法?
答案 0 :(得分:2)
你的意思是POIXMLProperties.CustomProperties.getProperty(String)方法吗?我认为应该做你想做的事。好吧,假设您正在使用足够新版本的Apache POI来获得它!
但是,请注意它返回一个CTProperty对象,该对象相当低级,并且没有明确的类型。您必须调用各种isSetXXX
方法来确定它是什么类型,然后getXXX
来获取值。
答案 1 :(得分:0)
我想办法做到这一点,但我不喜欢这样
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
}