如何保存到Excel文件

时间:2015-06-26 00:19:34

标签: java excel save

我正在尝试保存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);
    }
}

2 个答案:

答案 0 :(得分:0)

HSSF网站上的第一个文字说:

  

HSSF是POI项目的Excel' 97(-2007)文件格式的纯Java实现。

所以.xlsx是错误的扩展名。试试.xls。 Excel可能会尝试将其作为较新的格式文件打开,因为它的扩展名,即它不会检查旧格式,这会花费时间并使其看起来比查找目的,它并不是真的想占用时间。

答案 1 :(得分:0)

HSSF 用于xsl文件 如果您需要xslx格式,则应使用 XSSF

另外,POI库在读/写文件时会占用大量内存;所以在OOM异常的情况下使用SXSSF(流式版的XSSF)。

祝你好运。