根据提供的代码,可能导致导出Excel内容乱码的原因有以下几点:

  1. 字符编码问题:确保在设置文件名(filename)时,使用的编码方式是UTF-8。可以尝试使用URLDecoder来解码文件名。例如:filename = URLDecoder.decode(filename, "UTF-8");

  2. 响应头设置问题:确保在设置响应头(response)时,设置的字符编码是UTF-8,并且指定了Excel文件的类型为"application/vnd.ms-excel"。可以将设置字符编码的代码放在设置响应头之前。

  3. ExcelWriter设置问题:确保在创建ExcelWriter对象时,设置的编码方式为UTF-8。例如:ExcelWriter writer = new ExcelWriter(response.getOutputStream(), ExcelTypeEnum.XLSX, true, new ExcelWriterSettings()); writer.setCharset(Charset.forName("UTF-8"));

综上所述,可以尝试以下修改代码:

filename = URLEncoder.encode("房源信息信息-"+ fyxxParamDto.getFdckfxmbh(), "UTF-8") + ".xls";
filename = URLDecoder.decode(filename, "UTF-8"); // 解码文件名
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + filename);

ExcelWriter writer = new ExcelWriter(response.getOutputStream(), ExcelTypeEnum.XLS, true);
writer.setCharset(Charset.forName("UTF-8")); // 设置编码方式

com.alibaba.excel.metadata.Sheet sheet1 = new com.alibaba.excel.metadata.Sheet(1, 0, TdzzsxmbgFyxxDto.class);
sheet1.setSheetName("sheet1");
writer.write(tdzzsxmbgFyxxDtos, sheet1);
writer.finish();

如果问题仍然存在,请提供更多代码和错误信息以便进一步分析


原文地址: https://www.cveoy.top/t/topic/irVg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录