在我的java代码中创建的xlsx文件没有在ms excel中打开,表示文件格式或文件扩展名无效

时间:2018-01-12 15:12:12

标签: java excel apache-poi

我有一个java代码来创建一个excel文件,它适用于扩展名.xls和.xlsx我能够打开.xls文件,但无法在ms excel中打开文件扩展名.xlsx,它说< strong> Excel无法打开'sample.xlsx'文件,因为文件格式或文件扩展名无效。验证文件是否已损坏,文件扩展名是否与文件格式匹配。

下面是我使用的java代码。

HSSFWorkbook workBook = new HSSFWorkbook();
String file = "D:/sample.xlsx";
FileOutputStream fos = new FileOutputStream(file);
workBook.write(fos);
fos.flush();   

我已经通过下面的链接看起来有类似的问题,但我没有找到这里提出的答案作为新问题。
File Excel From Apache POI Cant Open by Ms Excel (corrupt)

1 个答案:

答案 0 :(得分:4)

如果您尝试使用.xlsx扩展名创建Excel文件,则需要使用XSSFWorkbook。我建议阅读this以了解XSSFWorkbook和HSSFWorkbook对象之间的区别。

此外,您可以使用文档here来了解如何使用Apache POI创建新的Excel文件。

基本上,你会这样做:

Workbook wb = new XSSFWorkbook();
Sheet sheet1 = wb.createSheet("new sheet");
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
wb.write(fileOut);
fileOut.close();