导出CSV时为什么文件内容总是空的?
在做数据导出功能时,用Blob生成CSV文件,但下载后文件内容一直是空的。明明控制台打印数据是正常的…
尝试用字符串拼接方式导出,代码类似这样:
const csvContent = "id,namen1,测试";
const blob = new Blob([csvContent], { type: 'text/csv' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'data.csv';
link.click();
但下载的文件确实空的,连表头都没有。如果改成手动创建标签再删除,会不会是DOM操作的问题?或者Blob类型设置不对?
也试过用Papa Parse库转换数据,导出时直接得到类似”data:application/octet-stream;base64…”的链接,但这样生成的文件同样为空…
const csvContent = "id,namen1,测试";
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'data.csv');
link.click();
如果还是空的,检查浏览器兼容性或者试试用encodeURI包裹一下链接。Papa Parse的话,确保数据格式是数组,直接传对象肯定不行。