Excel从多语言内容的JAVA导出

时间:2012-10-02 11:48:41

标签: java excel multilingual

我试图从JAVA导出和MS Excel表单,其中包含一些多语言(日语)内容。我尝试了几件事,但多语言(日语)内容在导出的Excel表格中没有正确显示。

我从数据库中取出内容(我已经检查了数据库,正确保存了多语言 - 日语内容)

String fileName = "output"+".xls";
ExcelExport excelExporter = new ExcelExport();
excelExporter.ExportExcel(fileName, ....);  // Writing Database Fields to Excel
File file = new File(fileName);
int length = 0;
response.setContentType("application/vnd.ms-excel");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=\""+ file.getName() + "\"");
ServletOutputStream outputStream = response.getOutputStream();
byte[] bbuf = new byte[1024];
DataInputStream in = new DataInputStream(new FileInputStream(file));
while ((in != null) && ((length = in.read(bbuf)) != -1)) 
{
    outputStream.write(bbuf, 0, length);
}

in.close();
outputStream.flush();
outputStream.close();
file.delete();

它向我显示编码 iso-8859-1 (通过使用 response.getCharacterEncoding(); 功能),这可能是问题吗?因为英语在Excel文件中完美无缺,所以只有多语言(日语)出现错误

1 个答案:

答案 0 :(得分:0)

请勿关闭响应的outputStream。此外,使用BufferedInputStream而不是DataInputStream,它更适用于对象。

不需要对in != null进行测试。 bbuf维度可能更大,比如4096。