java 导出 Excel 中文乱码

这样字导出的文件里面的中文是乱码的
服务器上的文件
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ids = request.getParameter("ids").toString(); //获取所有的供应商 String path = request.getSession().getServletContext().getRealPath("");

String name = UUID.randomUUID().toString().toUpperCase().replace("-","");

response.setCharacterEncoding("UTF-8");

// OutputStream os = response.getOutputStream();// 取得输出流
// response.reset();// 清空输出流
// response.setHeader("Content-disposition", "attachment; filename=fine.xls","utf-8");// 设定输出文件头
// response.setHeader("Content-Disposition" ,"attachment;filename="+new String(("tre"+".xls").getBytes(),"utf-8"));
// response.setContentType("application/msexcel;");// 定义输出类型
// response.setContentType("application/vnd.ms-excel");

File f = null;
try {
f = ExcelDo.createExcel(path,name,ids);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

InputStream fis = new BufferedInputStream(new FileInputStream(new File(path+"\\"+"abc.xls")));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// response.reset(); response.setContentType(contentType);
response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode("测试.xls", "UTF-8")+ "\"");

OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); // 得到向客户端输出二进制数据的对象

toClient.write(buffer); // 输出数据

toClient.flush();
toClient.close();
}

 HSSFCell csCell = row.createCell((short) 1);

 csCell.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断


 csCell.setCellValue("中文测试");// 设置中文

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-09-19
在开头加个空格试试
第2个回答  2013-10-28
用上这个
cells.setEncoding(HSSFCell.ENCODING_UTF_16);
cells.setCellType(HSSFCell.CELL_TYPE_STRING);

java项目中,实现导出excel功能,在别人电脑上经过测试,完全没有问题,为 ...
导致乱码的问题很多,有可能是程序编码问题,有可能是机器编码问题,也有可能是使用的JDK版本,或者是Jar版本问题 可以贴出错误,或者代码 你是用迅雷下载的吗?

java 导出 Excel 中文乱码
HSSFCell csCell = row.createCell((short) 1);csCell.setEncoding(HSSFCell.ENCODING_UTF_16);\/\/ 设置cell编码解决中文高位字节截断 csCell.setCellValue("中文测试");\/\/ 设置中文

java打开excel乱码
workbook.setSheetName(0, sheetName,(short)1); \/\/这里(short)1是解决中文乱码的关键;而第一个参数是工作表的索引号。没有太多原因,POI就是如此;再说导出的EXCEL文件名的中文乱码问题, 导出时代码如下:...this.getResponse().reset();this.getResponse().setContentType("application\/msexcel")...

...里面查询的一个list集合导出excel文件,内容是乱码文件名是对的_百度...
这种问题很常见呀,要学会解决,首先查看是从什么时候开始乱码的,从数据库中取出来的时候还是在传递过程中(可能不大),还是往excel中写数据的时候,找到原因,在去查询资料问别人,这样子很快就可以解决问题啦

求高手解决Java做导出excel时出现的中文乱码,包括文件名好内容中的...
编码格式统统用UTF-8

请问你回答过的那个JAVA导出excle内容出现乱码给出的设置编码的那个语句...
你可以在服务器响应的时候加一个 response.setContentType("application\/msexcel;charset=UTF-8");

java导出excel生成下拉框时报错,有哪些原因?
Excel文件最大行数限制为65535,使用HSSF格式,超过此数将导致内存溢出错误;XSSF格式可支持更多行数,但不能直接读取模板内容。字符输出流使用 创建Filewrite对象,写入数据到内存缓冲区,调用flush刷新缓冲区内容到文件,使用close释放资源,确保数据正确写入。最后建议 在使用输出流时,确保正确创建并使用输出...

JAVA读取EXCEL文件异常Unable to recognize OLE stream
首先你这个Excel文件是从哪里来的,很可能是从一个页面上下载来的,而这个页面做的功能就是导出Excel,但做偷懒了,没有用jxl和POI等库,而是用直接用jsp生成html写的。因此你上传时就要要判断了,如果是真的excel就要用jxl或POI解析,如果只是html,就要用HTML的解析方法了。

java导出数据到excel的几种方法的比较
JAVA导出EXCEL(.xls) 导出Excel用的插件是apache的poi.jar,maven地址如下 <dependency><groupId>org.apache.poi<\/groupId><artifactId>poi<\/artifactId><version>3.17<\/version><\/dependency> 1. 简单应用 先来个简化无样式的Excel导出,由于我的数据存在JSON中,所以形参是JSONArray,朋友们根据自己的实际数据类型(...

java 采用WritableWorkbook 进行导出Excel文件的时候,将数据组长好之后...
导致问题的原因是:程序两次用了response.sendRedirect()。(具体可查看源码)下面2种解决办法用于参考:在response.sendRedirect()方法后加return语句,即: response.sendRedirect("login.jsp"); return;在action 中不要使用return SUCCESS ,而是使用return null,这样避免重复提交。

相似回答