我正在尝试保存excel文件但由于某种原因我无法保存它。这是我打开保存文件时得到的错误
" Excel无法打开文件[filename],因为文件格式或文件扩展名无效。"
这是我用来保存到excel文件的代码,它肯定是.xlsx我做错了什么?
public static void saveFile(int lineCoutner, String Closed, Elements ticketNumber, String College, String customerCalled, String firstResponse, String ResolutionTime){
try {
String filename = "C:/Users/ross/Desktop/Work/Ticketing.xlsx";
@SuppressWarnings("resource")
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("FirstSheet");
HSSFRow rowhead = sheet.createRow((short)0);
rowhead.createCell(0).setCellValue("Ticket");
rowhead.createCell(1).setCellValue("Reason for Contact");
rowhead.createCell(2).setCellValue("Resolution OutCome");
rowhead.createCell(3).setCellValue("TimeCustomerCalled");
rowhead.createCell(4).setCellValue("First Reponse");
rowhead.createCell(5).setCellValue("Time Resolution");
rowhead.createCell(6).setCellValue("College");
HSSFRow row = sheet.createRow((short)1);
row.createCell(0).setCellValue(ticketNumber.text());
row.createCell(1).setCellValue(Closed);
row.createCell(2).setCellValue(Closed);
row.createCell(3).setCellValue(customerCalled);
row.createCell(4).setCellValue(firstResponse);
row.createCell(5).setCellValue(ResolutionTime);
row.createCell(6).setCellValue(College);
FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
System.out.println("Your excel file has been generated!");
} catch ( Exception ex ) {
System.out.println(ex);
}
}
答案 0 :(得分:0)
HSSF网站上的第一个文字说:
HSSF是POI项目的Excel' 97(-2007)文件格式的纯Java实现。
所以.xlsx是错误的扩展名。试试.xls。 Excel可能会尝试将其作为较新的格式文件打开,因为它的扩展名,即它不会检查旧格式,这会花费时间并使其看起来比查找目的,它并不是真的想占用时间。
答案 1 :(得分:0)
HSSF 用于xsl文件 如果您需要xslx格式,则应使用 XSSF 。
另外,POI库在读/写文件时会占用大量内存;所以在OOM异常的情况下使用SXSSF(流式版的XSSF)。
祝你好运。