js处理csv文件并导出

处理

当使用js处理Excel文件时,建议导出为csv,这样就能以纯文本形式进行处理。
首先使用<input>FileReader将csv文件以文本形式加载到一个字符串变量中。设字符串变量为tableStr
首先要将整个字符串按数据行来分割。由于csv文件每行结尾都带有换行符\n,故而可以使用\n做分隔符:

var rows = tableStr.split(/[\n]/) // 按行分割

对于单行数据,要分割出每一列。csv的格式是使用,来分隔列:

var cells = rows[0].split(',') // 按列分割

这样就拿到了本行所有单元格的数据。

导出

当处理完所有csv数据后,要构造一个新的csv字符串出来。已经有每一行的数据,故而只要在每行数据后添加一个\n然后拼接即可:

var csvString = ''
for (var i = 0; i < rows.length; i++) {
	csvString += rows[i] + '\n'
}

导出功能需要借助<a>元素。动态创建一个<a>,将csv文件设置为其链接的跳转对象,然后触发其click()即可:

var download = function(saveName, csvString) {
	var link = document.createElement("a")
	link.setAttribute("href", "data:text/csv;charset=utf-8,\ufeff" + csvString)
	link.setAttribute("download", saveName + ".csv")
	link.click()
}

由于动态创建的<a>没有append到body中,故而不需要删除。

发布了215 篇原创文章 · 获赞 51 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/fyyyr/article/details/102816147