簡體   English   中英

org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException:聯合值“false”與命名空間中“ST_OnOff”的任何成員都不匹配

[英]org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException: union value 'false' does not match any members of 'ST_OnOff in namespace

您好我正在嘗試使用 java apachi poi 庫在 word 文檔中創建目錄。 我在這里找到了一個代碼表。 但是當我運行代碼時,它給了我以下錯誤

rg.apache.xmlbeans.impl.values.XmlValueOutOfRangeException:聯合值“false”與命名空間http 中“ST_OnOff”的任何成員都不匹配://schemas.openxmlformats.org/officeDocument/2006/sharedTypes

產生錯誤的代碼是

XWPFParagraph paragraph = document.createParagraph();
CTP ctP = paragraph.getCTP();
CTSimpleField toc = ctP.addNewFldSimple();
toc.setInstr("TOC \\* MERGEFORMAT");
toc.setDirty(STOnOff.TRUE);

Poi 版本 5.2.3

如果應將 Microsoft Word 字段設置為“臟”,以告知 Microsoft Word 在下次打開文件時刷新該字段,則可以使用將CTSimpleField屬性dirty設置為org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff.TRUE高達 Apache POI 版本 4.xx

從版本 5.0.0 開始, org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff不再存在。 還有其他STOnOff類,但它們都不提供TRUE / FALSE ,而只提供ON / OFF 但是現在CTSimpleField.setDirty直接接受 boolean 值。

要使用大於 4 的 Apache POI 版本使此代碼工作,您需要更改以下內容:

...
//import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
...
  //toc.setDirty(STOnOff.TRUE);
  toc.setDirty(true);
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM