我在我的应用程序中使用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扩展名的文件。
答案 0 :(得分:1)
CSV文件的正常mimetype为text/csv
生成文件时,请务必正确引用值。可能值得使用现有的库来确保完成,特别是如果您有复杂的值
答案 1 :(得分:1)
response.setContentType("text/comma-separated-values; charset=utf8");