用apache poi(Java)创build的Excel文件不能在Windows上打开

在我的系统中,我有一个类创build一些数据的Excel。

基本上我从一个variablesArrayList>读取所有的string值,并将它们写入Excel单元格中。

public void writeData(Data data, int sheetNumber) throws EncryptedDocumentException, InvalidFormatException, IOException { org.apache.poi.ss.usermodel.Workbook workbook; try { workbook = WorkbookFactory.create(new File(path)); } catch (FileNotFoundException e) { workbook = new HSSFWorkbook(); } org.apache.poi.ss.usermodel.Sheet sheet; try { sheet = workbook.createSheet("Sheet" + sheetNumber); } catch (IllegalArgumentException e) { sheet = workbook.getSheet("Sheet" + sheetNumber); } int dataListSize = data.getData().size(); for (int i = 0; i < dataListSize; i++) { Row row = sheet.createRow(i); int rowSize = data.getData().get(i).size(); for (int j = 0; j < rowSize; j++) { row.createCell(j); row.getCell(j).setCellValue(String.valueOf(data.getData().get(i).get(j))); } } FileOutputStream fos = null; try { fos = new FileOutputStream(new File(path)); workbook.write(fos); } catch (IOException e) { e.printStackTrace(); } finally { workbook.close(); if (fos != null) { try { fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } 

代码工作正常据我所知,我在Ubuntu上开发,总是尝试在这里的代码,创build的Excel很好,我没有任何问题。

当我把其中一个到Windows(XP和7,尝试两个),我无法使用Microsoft Excel打开他们中的任何一个。

有人对这个有经验么?

谢谢。

Solutions Collecting From Web of "用apache poi(Java)创build的Excel文件不能在Windows上打开"

正如阿克塞尔提到的,问题是文件扩展名。

我可以打开在Ubuntu(14.04和16.04)中以这种方式创建的文件,但不能在Windows(7,8和10)中打开。

解决方法是使用.xls扩展名而不是.xlsx ,这样我就可以在任何操作系统中打开和使用这些文件。