我已经使用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();
谢谢!
答案 0 :(得分:0)
向答案提出一些意见 - Java应该是平台和架构无关的。除非您正在执行特定于平台的代码,例如AWT或Swing,否则运行时平台之间不应存在任何差异
然而,机器之间可能有所不同的一点是类路径。确保两台机器上的代码和相同的罐子确实相同!
一个可悲的常见问题是运行时,框架等在不告诉您的情况下默默地捆绑过期的Apache POI副本。如果你make use of the code included in the Apache POI FAQ Entry,你可以检查你在运行时真正使用的POI罐。
根据评论,这些罐子不是您认为正在使用的罐子。根据{{3}},不支持在版本之间混合POI jar。删除已识别的旧POI jar,因此您只使用最新的,并且您的代码将正常运行