javascript - Blob 在生成 csv 文件时跳过第一列
问题描述
我正在尝试使用 blob 类生成 CSV 文件。第一行工作正常,但其余行跳过第一列
var ExcelIndex = ['"user_name","user_hash","authenticate_id","first_name","last_name","description","department","phone_home","phone_mobile","phone_work","phone_other","phone_fax","address_street","address_city","address_state","address_country","address_postalcode","Errors"'];
var dataInSingleStringArray = new Array();
dataInSingleStringArray.push(ExcelIndex[0], "\n");
var ExcelInde = ['"user_name","user_hash","authenticate_id","first_name","last_name","description","department","phone_home","phone_mobile","phone_work","phone_other","phone_fax","address_street","address_city","address_state","address_country","address_postalcode","Errors"'];
// var dataInSingleStringArray = new Array();
dataInSingleStringArray.push(ExcelInde[0], "\n");
window.URL = window.webkitURL || window.URL;
var contentType = 'text/csv';
var csvFile = new Blob([dataInSingleStringArray], {type: contentType});
var a = document.createElement('a');
a.setAttribute("style", "margin-left: 700px;font-size: 2em;")
a.download = 'failed_data.csv';
a.href = window.URL.createObjectURL(csvFile);
a.textContent = 'Download File';
document.getElementById('link').appendChild(a);
<div id="link"></div>
解决方案
每次将数据添加到数组时,不要添加“\n”,而是将数据添加到数组,然后使用“\n”将其加入
var ExcelIndex = ['"user_name","user_hash","authenticate_id","first_name","last_name","description","department","phone_home","phone_mobile","phone_work","phone_other","phone_fax","address_street","address_city","address_state","address_country","address_postalcode","Errors"'];
var dataInSingleStringArray = new Array();
dataInSingleStringArray.push(ExcelIndex[0]);
var ExcelInde = ['"user_name","user_hash","authenticate_id","first_name","last_name","description","department","phone_home","phone_mobile","phone_work","phone_other","phone_fax","address_street","address_city","address_state","address_country","address_postalcode","Errors"'];
// var dataInSingleStringArray = new Array();
dataInSingleStringArray.push(ExcelInde[0]);
//console.log(dataInSingleStringArray);
//console.log(dataInSingleStringArray.join("\r\n"));
window.URL = window.webkitURL || window.URL;
var contentType = 'text/csv';
var csvFile = new Blob([dataInSingleStringArray.join("\n")], {type: contentType});
var a = document.createElement('a');
a.setAttribute("style", "margin-left: 700px;font-size: 2em;")
a.download = 'failed_data.csv';
a.href = window.URL.createObjectURL(csvFile);
a.textContent = 'Download File';
document.getElementById('link').appendChild(a);
<div id="link"></div>
推荐阅读
- r - 根据行 ID 将 R 中的值写入 PostgreSQL 表
- stored-procedures - 跨多个过程调用缓存 getdate() 的 Redshift 问题
- react-native-maps - 在 SVG 图标中心覆盖文本 (React-Native)
- arrays - 两个字符数组之间的 CAPL 检查
- sql - 与 Oracle 11g 中的元组中的 null 进行比较
- java - 将哈希码转换为字符串后,我无法在 Java 中将其重新转换为 int
- excel - 计算多个范围的平均值
- flutter - 有没有办法让 Flutter macOS 应用的字符选择栏出现在正确的位置?
- vuejs2 - Vue.js (v.2) 仅在单击按钮后加载(获取)数据
- r - 条件均值和散点图