问题描述:
由于做的是真分页,所以下载的时候不用在查询数据库,因而直接用的是js制作CSV文件下载功能,但是由于值中含有json字符串导致导出格式错误。格式错误体现在json字符串被拆分,占用了多个单元格。
解决方法:
根据CSV文件识别单元格的方式,用双引号括起来的内容被识别为一个单元格。
所以问题主要出在json字符串中含有双引号。
因此只需要先过滤每个单元格中的双引号就可以解决问题,即replace(/\"/g,"")。
我多加了一个过滤,是因为json字符串被解析时双引号是转义字符,为了显示简洁美观我加了一个.replace(/[\\]/g,"")
最后根据CSV文件识别单元格的方式,用双引号括起来的内容被识别为一个单元格,所以再单元格内容两边加上双引号即可
完整处理过程如下:
data += "\"" +JSON.stringify(arr[columns[i]]).replace(/\"/g,"").replace(/[\\]/g,"") + "\"";
参考资料:
JS删除字符串中所有的英文双引号