apache poi读取自定义属性

时间:2014-09-03 11:22:22

标签: apache-poi custom-properties

我已将自定义属性添加到我的工作簿对象中,如:

((XSSFWorkbook)workBook).getProperties().getCustomProperties().addProperty("fileNameSuffix" , "testName");

现在我怎么能再读回来。
为什么没有getProperty(String key)这样的方法?

2 个答案:

答案 0 :(得分:2)

你的意思是POIXMLProperties.CustomProperties.getProperty(String)方法吗?我认为应该做你想做的事。好吧,假设您正在使用足够新版本的Apache POI来获得它!

但是,请注意它返回一个CTProperty对象,该对象相当低级,并且没有明确的类型。您必须调用各种isSetXXX方法来确定它是什么类型,然后getXXX来获取值。

POIXMLPropertiesTextExtractor

中有一个如何做到这一点的例子

答案 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
    }