情况描述:
Excel的默认编码格式是 ANSI,但是 office 版本有很多
旧版本的excel无法打开utf-8编码的文件,只能打开ANSI编码的文件 (如office2007版本)
新版本的excel可以打开utf-8编码的文件,也能打开ANSI编码的文件 (如office2010版本)
因此,不能只是输出一个文件然后给它命名为 .csv/.xlx 这样无法做到版本兼容
解决方式:
生成一个excel然后再输出,这样就可以做到版本兼容
代码:
1,2,3
4,5,6
7,8,9
文件内容如上所示,然后写入到excel并输出
/**
* 将文本内容写入Excel,然后下载该Excel
* @param pathfile 待读取的文本路径
* @param response 响应
* @param fileName 生成的Excel文件名称 (XXX.xls)
*/
public void downLoadFile(String pathfile, HttpServletResponse response, String fileName) {
try {
//解决下载后的文件中文名乱码问题
fileName = new String(fileName.getBytes("GBK"), "iso-8859-1");
} catch (UnsupportedEncodingException e) {
logger.error("