相同的Apache poi(excel)代码根据系统类型(32位、64位)的不同而不同



我使用apache poi 3.10成功生成了一个excel文件,该程序仅在32位系统上按预期运行。

但当试图在64位系统上运行它时,大多数单元格数据都被忽略了,它们根本不会出现(但相同的代码在32位系统上也能正常工作)。我该怎么做才能让所有生成的单元格数据都能显示在64位系统上?

HSSFWorkbook my_xls_workbook = new HSSFWorkbook(input_document);
HSSFSheet my_worksheet = my_xls_workbook.getSheetAt(0);
Cell cell = null;
cell = my_worksheet.getRow(0).getCell(10);
cell.setCellValue(nme.getText());                              
cell = my_worksheet.getRow(3).getCell(6);
cell.setCellValue(frm.getText);
cell = my_worksheet.getRow(4).getCell(3);
cell.setCellValue(empid);
//Closing InputStream
input_document.close();
FileOutputStream output_file =new FileOutputStream(new File("C:PayslipG.xls"));
//write data
my_xls_workbook.write(output_file);
//closing stream
output_file.close();

谢谢!

让一些评论成为答案-Java应该与平台和体系结构无关。除非您正在执行特定于平台的代码,例如AWT或Swing,否则运行时平台之间不应该有任何差异

然而,不同机器之间的一个不同点是类路径。确保你在两台机器上都有相同的代码和相同的jar!

不幸的是,一个常见的问题是运行时、框架等在不通知您的情况下默默地捆绑过时的Apache POI副本。如果您使用Apache POI FAQ条目中包含的代码,您可以检查您在运行时真正使用的POI jar。

根据评论,这些罐子不是你认为你在用的。根据其他POI常见问题解答,不支持在不同版本之间混合POI jar。删除已识别的旧POI jar,因此您只使用最新的,并且您的代码将正确运行

相关内容

最新更新