Java 如何将XSSF工作簿转换为文件

Java 如何将XSSF工作簿转换为文件,java,eclipse,file,Java,Eclipse,File,我目前有一个XSSFWorkbook,我想在Java代码中强制转换它或以某种方式将其更改为文件。有办法吗?用于将内容写入文件 FileOutputStream out = new FileOutputStream("yourFileName.xls"); Workbook wb = new XSSFWorkbook(); //do your stuff ... wb.write(out); 使用并测试了以下代码 private Response sendExcelFile(Locale lo

我目前有一个
XSSFWorkbook
,我想在Java代码中强制转换它或以某种方式将其更改为
文件
。有办法吗?

用于将内容写入文件

FileOutputStream out = new FileOutputStream("yourFileName.xls");
Workbook wb = new XSSFWorkbook();
//do your stuff ...

wb.write(out);

使用并测试了以下代码

private Response sendExcelFile(Locale locale, Optional<List<List<String>>> consumersReportData) {
    XSSFWorkbook workBook = ExportToExcelUtils.prepareWorkBook(consumersReportData.get(), "data");



    String DisplayFileName = "Consumers-Report-" + DateUtils.getLocalDateInString(DateUtils.now());
    String fileName = "/tmp/fileName.xlsx";

// Created file object here 

    File file = new File(fileName);

    try {
        FileOutputStream outputStream = new FileOutputStream(file);
        workBook.write(outputStream);
    } catch (FileNotFoundException e) {
        LOGGER.error("File not found : fileName {}  Exception details:{} ", fileName, e);

    } catch (IOException e) {
        LOGGER.error("IO exception  : fileName {}  Exception details:{} ", fileName, e);

    }

    ResponseBuilder responseBuilder = Response.ok((Object) file);
    responseBuilder.header("Content-Disposition", "attachment; filename=" + DisplayFileName + EXCEL_FILE_EXTENSTION);
    return responseBuilder.build();
}
私有响应sendExcelFile(区域设置,可选consumersReportData){
XSSFWorkbook工作簿=exportToExcelotils.prepareWorkBook(consumersReportData.get(),“数据”);
String DisplayFileName=“消费者报告-”+DateUtils.getLocalDateInString(DateUtils.now());
字符串fileName=“/tmp/fileName.xlsx”;
//在此处创建文件对象
文件=新文件(文件名);
试一试{
FileOutputStream outputStream=新的FileOutputStream(文件);
workBook.write(outputStream);
}catch(filenotfounde异常){
错误(“未找到文件:文件名{}异常详细信息:{}”,文件名,e);
}捕获(IOE异常){
错误(“IO异常:文件名{}异常详细信息:{}”,文件名,e);
}
ResponseBuilder ResponseBuilder=Response.ok((对象)文件);
header(“内容处置”、“附件;文件名=“+DisplayFileName+EXCEL文件扩展名”);
返回responseBuilder.build();
}