处理
当使用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中,故而不需要删除。
本文详细介绍如何使用JavaScript处理CSV文件,包括加载CSV文件到字符串,按行和列分割数据,以及构造并导出新的CSV文件。通过示例代码展示了完整的处理流程。
801

被折叠的 条评论
为什么被折叠?



