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中,故而不需要删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值