当前位置: 首页 > 知识库问答 >
问题:

WorkbookFactory.Create(inputstream)引发StringIndexOutOfBounds异常

穆远
2023-03-14

我无法使用Apache POI读取xlsm文件。我得到错误java.lang.StringIndexOutOfBoundsException:String index out of range:-1。

我的程序看起来像:

FileInputStream file=new FileInputStream(new File(path));
out.print("aaaaaa");
Workbook workbook=null;out.print("1111111");
workbook=WorkbookFactory.create(file);
out.print("222222");

这是否意味着我的特定xlsm文件模板有问题?还是我漏掉了什么?有人能帮我修好吗?

更新:我把我的代码块放在一个小的java类中,并直接复制到服务器到我的web应用程序文件夹之外的一个文件夹中,它在那里工作得很好...会不会是svn相关的问题?

共有1个答案

卜勇
2023-03-14

我的程序现在运行良好。问题是,在我的测试服务器中,有几个版本的poi、poi-ooxml和poi-ooxml-schemas JAR分散在几个文件夹中。所以我删除了所有的jars(3.17),只在一个路径中添加了最新版本的jars(3.17),添加到类路径中,还添加了jars依赖项(以防万一),一切都很好。希望这对某人有帮助。

 类似资料:
  • 你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception):     '''A u

  • 问题内容: 鉴于此Java 8代码 我们如何正确地将其委派给方法调用的堆栈?(简而言之,如何使此方法抛出此错误?) Java中的Lambda看起来对错误处理不是很友好… 问题答案: 我的方法是从lambda 偷偷地 将其抛出,但是要小心,使该方法在其子句中声明它。使用我在这里发布的课程: 这样,您可以有效地使编译器仅“移开视线”,从而在代码中的某个位置禁用其异常检查,但是通过在方法中声明异常,可以

  • 我使用正则表达式来查找一个字符串是否存在于一个书页中。下面是相同的代码。 观察: > 案例1:当searchText=“(222M)”时 结果:找到字符串。 案例2:当search chText="(222M"//缺少括号时 我得到以下例外。 索引22:.\b.{0}(1110r.{附近regexp模式中嵌套的括号不正确。{0}.\b 还有更好的在页面中查找字符串的选项。使用String.cont

  • 下面有一些代码,我试图在其中使用以字符串形式打印所有匹配项。 上面的代码在线程“main”java.lang.IndexOutOfBoundsException中抛出异常:没有第2组异常。

  • 我正在尝试使用@Valid验证我的JPA实体,如下所示: 它工作了一段时间,但现在它停止工作,我不知道为什么。我试着在< code>persist方法中手动执行,它按预期工作: 可能会发生什么情况,或者我该如何调试?

  • 问题内容: 我想使用HttpURLConnection进行POST。我以两种方式尝试这种方法,但是这样做总是让我兴奋不已: 我在这两种情况下得到的异常是: java.net.SocketException:操作超时:connect:可能是由于无效的地址 功能1: 或功能2: 问题答案: 根本无法访问该URL。URL错误或DNS服务器无法解析主机名。尝试使用众所周知的URL进行简单连接以排除一个和另