開頭先簡單介紹,這是一個讀寫Excel,xlsx的功能,主要是幫助我們去打印或者讀寫一些數據的。
應用場景:主要的應用場景是用戶需要導出數據的時候,類似我們在一個網站上消費了好幾年的金額,我們需要查看流水賬,我們作為開發人員就可以將數據在node的服務層進行對應的整理,再通過寫成一個Excel給到客戶使用。
step1:加載模塊
使用模塊:fs--主要用於寫入文件;
node-xlsx主要用於轉換xlsx數據和讀取xlsx的文件數據;
const fs = require('fs') const xlsx = require('node-xlsx'); // 讀寫xlsx的插件
step2:讀取功能
讀取功能相對簡單,直接使用模塊的prase(路徑)方法就能讀取
var list = xlsx.parse("./doc/hello.xlsx");
返回結果,name:表名,data:二維數組--由於Excel以表格的形式表示,因此表格的數據都是通過二維數組進行接收。
[ { name: 'firstSheet', data: [ [Array], [Array] ] }, { name: 'secondSheet', data: [ [Array], [Array] ] } ]
step3:寫入功能
寫入功能,對應的寫入數據與上面讀取功能的返回格式需要一致,以數組的形式,name:表名,data:二維數組--Excel每行每列的數據。
如下面代碼,生成一個Excel文件,分別兩張表,表名分別是firstSheet,secondSheet
let xlsxObj = [ { name: 'firstSheet', data: [ [1, 2, 3], [4, 5, 6] ], }, { name: 'secondSheet', data: [ [7, 8, 9], [10, 1, 12] ], } ]
生成Excel文件
fs.writeFileSync(路徑,Buffer數據)
xlsx.build(xlsxObj)會將數組轉換為Buffer數據
執行下面命令就會生成對應的Excel文件。
fs.writeFileSync('./doc/hello.xlsx',xlsx.build(xlsxObj),"binary");
以上就是通過node對Excel表格進行的讀取新建寫入操作。