我无法使用Apache读取xlsm文件。我得到的错误java.lang.StringIndexOutOfBoundsException: String索引超出了范围:-1。
我的程序看起来是:
FileInputStream file=new FileInputStream(new File(path));
out.print("aaaaaa");
Workbook workbook=null;out.print("1111111");
workbook=WorkbookFactory.create(file);
out.print("222222");22222永远不会打印,我得到了例外。aaaaaaa和111111版。
我已经按照Error while reading an xlsm file using POI Framework in Java下载了所有最新的jars,我已经尝试了XSSFWorkbook。我已经尝试过传递File,而不是像在一些这样的答案中所看到的FileInputStream。
这是一个只读的xlsm,我的Java版本1.7。
当我尝试使用一个新的xlsm文件时,这个程序运行得很好,在其他只读xlsm文件(也是受保护的,但有不同的模板)也很好。
这是否意味着,我的特定xlsm文件模板可能有问题?还是我还遗漏了什么?有人能帮我解决这个问题吗?
更新:我把我的代码块放在一个小java类中,直接复制到服务器到我的web应用程序文件夹之外的文件夹中,它在那里工作得很好.会不会是与svn相关的问题?
发布于 2018-06-25 09:58:21
我的程序现在运转良好。问题是,在我的测试服务器中,poi、poi-ooxml和poi-ooxml模式的jars分散在几个文件夹中。因此,我删除了所有这些,只在单一路径中添加了最新版本的jars(3.17),添加到类路径中,也添加了jars依赖项(以防万一),一切都很好。希望这能帮上忙。
https://stackoverflow.com/questions/50961408
复制相似问题