在JSF 2.0中生成CSV文件

时间:2012-01-16 05:44:06

标签: java apache csv apache-poi

我在我的应用程序中使用apache poi和JSF 2.0来生成excel格式的报告。

代码剪切生成Excel。

final FacesContext facesContext = FacesContext.getCurrentInstance();
        final ExternalContext externalContext = facesContext
                .getExternalContext();
        externalContext.setResponseContentType("application/vnd.ms-excel");
            externalContext.setResponseHeader("Content-Disposition",
            "attachment; filename=\"Excel Sample");
        workbook.write(externalContext.getResponseOutputStream());
        facesContext.responseComplete();

正如您所看到的,我正在添加“application / vnd.ms-excel” - 服务器的MIME类型。我只是在玩,想知道我们是否可以将MIME类型更改为CSV。我不再为报告生成Excel文件。

还有另一个功能,我从数据库中获取数据并使用HSSF对象将其写入单元格。我在将数据写入每个单元格后调用此方法(代码片段)。

我应该写的是

  

externalContext.setResponseContentType( “应用程序/ vnd.ms-EXCEL”);

因此它生成带有csv扩展名的文件。

2 个答案:

答案 0 :(得分:1)

CSV文件的正常mimetype为text/csv

生成文件时,请务必正确引用值。可能值得使用现有的库来确保完成,特别是如果您有复杂的值

答案 1 :(得分:1)

response.setContentType("text/comma-separated-values; charset=utf8");