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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章