我正在尝试使用Apache POI(3.7)在两个excel文件之间复制数据。
文件A包含使用JasperReports生成的原始数据。文件B有两张纸。第一张表包含使用宏填充的表,第二张表包含从第一张表中提供表的数据。
我的任务是将第一个文件中的数据导入第二个文件的第二张。
代码正在处理地球表面上的每个xlsm文件,除了我需要工作的那个......
代码:
if (outputfile.getAbsolutePath().contains(".xlsx") || outputfile.getAbsolutePath().contains(".xlsm")) {
FileInputStream inputStreamForReport = new FileInputStream(outputfile);
pack = OPCPackage.open(inputStreamForReport);
outputWorkbook = WorkbookFactory.create(pack);
inputStreamForReport.close();
} else {
inputStream2 = new FileInputStream(outputfile);
fileSystem2 = new POIFSFileSystem(inputStream2);
outputWorkbook = WorkbookFactory.create(fileSystem2);
inputStream2.close();
}
正如我之前提到的,这适用于除了我需要工作的文件之外的所有文件。如果我使用那个文件,当我到达这一行时:
outputWorkbook = WorkbookFactory.create(pack);
Tomcat只是坐在那里没有做任何事情。使用htop我可以看到其中一个核心是100%。这种情况永远持续下去,Tomcat死了。我在日志中没有收到任何消息,它只是坐在那里。我正在使用Tomcat7。
你可以在这里找到让我疯狂的文件:https://drive.google.com/file/d/0B4tieEreAMvUdUdHQ1doM2lzbFU/view?usp=sharing
我不知道宏是如何工作的。所以这可能是一个愚蠢的错误。 任何想法将不胜感激。抱歉我的英文。