js-xlsx是一款用於excel文件處理的腳本
github地址:https://github.com/protobi/js-xlsx/tree/beta
由於文檔是英文的,為了自己下次能更快上手使用,這篇文檔就介紹下它的簡單使用
安裝
這其實沒啥好說的,第二種script標簽引入后,是可以直接使用 XLSX 對象的,下面也主要介紹這種引入方式的寫法

創建workbook對象
通過input file元素的onchange事件讀取excel文件的數據,在圖片注釋位置處進行操作

workbook對象

SheetNames存放表名,Sheets存放表數據
workbook.SheetNames.forEach(item => {
console.log(workbook.Sheets[item])
})
t 類型,v 值, f 公式,還有其他的請自行查閱文檔

內置函數
sheet-to-json 生成一個數組對象


顯然是把第一行的標題作為了屬性名
下載excel文件
因為瀏覽器無法對本地文件進行修改,所以對讀取的excel做出修改后,需要重新下載修改后的文件,這里通過純js方式來實現下載
// 生成二進制文件編碼 var wopts = { bookType:'xlsx', bookSST:false, type:'binary' }; var wbout = XLSX.write(workbook,wopts); function s2ab(s) { var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
// 創建a標簽用於下載
var eleLink = document.createElement('a');
eleLink.download = 'excel.xlsx';
eleLink.style.display = 'none'; // 字符內容轉變成blob對象
var blob = new Blob([s2ab(wbout)]); eleLink.href = URL.createObjectURL(blob); // 觸發點擊 document.body.appendChild(eleLink);
eleLink.click();
// 然后移除 document.body.removeChild(eleLink);
