にCustomPropertyを追加することはできません。のApache POIは、私は、既存の文書にいくつかのカスタムプロパティを追加しようとしているドキュメント
HWPFDocument document = new HWPFDocument(new FileInputStream(sourceFile));
DocumentSummaryInformation docSumInf = document.getDocumentSummaryInformation();
CustomProperties customProperties = docSumInf.getCustomProperties();
CustomProperty singleProp = null;
//...
singleProp = new CustomProperty();
singleProp.setName(entry.getKey());
singleProp.setType(Variant.VT_LPWSTR);
singleProp.setValue((String) entry.getValue());
//..
customProperties.put(entry.getKey(), singleProp);
docSumInf.setCustomProperties(customProperties);
return document;
ただし、プロパティはファイルにそれを作ることはありません。私はまた、ループ内で
document.getDocumentSummaryInformation().getCustomProperties().put(entry.getKey(), singleProp);
System.out.println(document.getDocumentSummaryInformation().getCustomProperties().size() + " Elemente in Map");
を試してみました
document.getDocumentSummaryInformation().getCustomProperties().putAll(customProperties);
しようとしました。印刷されたサイズは常に1つでした。
最初のattemp(docSumInf.setCustomProperties(customProperties);)では、docSumInfに設定する前にcustomPropertiesを出力しました。そこに私がドキュメントの要約に設定するとすぐに、私が見逃している新しいプロパティがあります。
私は、私が行方不明です何を見ていない...
私が使用するエントリは、(エントリエントリ:dataMap.entrySet()){....}のHashMapからも得られます。私はまた、キーとしてユニークなロング値を割り当てようとしましたが、どちらもうまくいきませんでした。だから私はキーがヌルではないことを確信しています。 –
デバッガでentry.getKey()がヌルでないことを確認してください –
環境のためにこのコードを簡単にデバッグすることはできません。私はログファイルに値を表示したので、nullではないことを確認しました。 –