Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获得;IllegalArguementException:参数的值';id';“是出界的”;对于poi apache库?_Java_Apache Poi - Fatal编程技术网

Java 获得;IllegalArguementException:参数的值';id';“是出界的”;对于poi apache库?

Java 获得;IllegalArguementException:参数的值';id';“是出界的”;对于poi apache库?,java,apache-poi,Java,Apache Poi,获取poi(最新版本)apache库的“IllegalArguementException:参数“id”的值超出范围” java.lang.IllegalArgumentException: Value for parameter 'id' was out of bounds at org.apache.poi.util.IdentifierManager.reserve(IdentifierManager.java:80) at org.apache.poi.xwpf.usermodel.XW

获取poi(最新版本)apache库的“IllegalArguementException:参数“id”的值超出范围”

java.lang.IllegalArgumentException: Value for parameter 'id' was out of bounds
at org.apache.poi.util.IdentifierManager.reserve(IdentifierManager.java:80)
at org.apache.poi.xwpf.usermodel.XWPFRun.<init>(XWPFRun.java:110)
at org.apache.poi.xwpf.usermodel.XWPFParagraph.buildRunsInOrderFromXml(XWPFParagraph.java:126)
at org.apache.poi.xwpf.usermodel.XWPFParagraph.<init>(XWPFParagraph.java:79)
at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:146)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:116)
java.lang.IllegalArgumentException:参数“id”的值超出范围
位于org.apache.poi.util.IdentifierManager.reserve(IdentifierManager.java:80)
位于org.apache.poi.xwpf.usermodel.XWPFRun.(XWPFRun.java:110)
位于org.apache.poi.xwpf.usermodel.XWPFParagraph.buildRunsInOrderFromXml(XWPFParagraph.java:126)
位于org.apache.poi.xwpf.usermodel.XWPFParagraph.(XWPFParagraph.java:79)
位于org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:146)
位于org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159)
位于org.apache.poi.xwpf.usermodel.XWPFDocument.(XWPFDocument.java:116)
导致此异常的语句是
XWPFDocument doc=新的XWPFDocument(OPCPackage.open(fis1))
其中
fis1
是一个简单的
FileInputStream
对象。

这显然(至少)发生在LibreOffice的docx文件中

除了使用Microsoft Office重新保存该文档的解决方法外,还可以进行代码修复:

问题是org.apache.poi.util.IdentifierManager在org.apache.poi.xwpf.usermodel.XWPFDocument中初始化为从1开始的ID;但是docx文件可以包含从0开始的(有效)ID


编辑此构造函数调用以从0(而不是1)开始,并生成POI JAR的本地版本后,POI可以正确处理导致上述错误消息的文档。

您在FileinputStream中传递的文件路径是什么。该文件来自何处?如果你用Word打开它,它会出错吗?在word+另存为中打开是否生成有效文件?@Sankumarsingh这是文件
C:\Users\psehrawa\Documents\MyDocumentFiles的路径\ayussing@alias.com\1641_TEST_27422_reportNew.docx
。希望文件路径不是问题。@Gagravarr文件来源我不知道,但我在使用Microsoft Word打开文件或另存为文件时没有任何问题。仅供参考,这已在POI中修复,从第3版开始应该可以使用。12@centic我试着使用3.12-beta1,来自Maven repo,我仍然遇到这个问题。你能不能在创建一个bug条目的同时创建一个示例文件,以便我们可以更详细地分析这个问题。