這兩天要作一個網站,須要把上傳的excel文件存到mongodb數據庫裏面去。網上找了下,發現有個國內大佬開發的node的excel插件——ejsExcel,使用方便,功能豐富,加上是國人開發的,出了問題聯繫起來也方便,因此就用ejsExcel吧。附上ejsExcel的地址:https://github.com/sail-sail/ejsExcel。node
1.創建項目文件夾並加入須要的文件git
(1)項目文件夾就叫 EjsExcelTest 吧github
2.經過npm 安裝ejsExcel模塊web
(1)在項目文件夾下運行CMD。直接在項目目錄的地址欄上輸入cmd就能夠在當前文件夾打開cmd窗口了,很方便。mongodb
(2)在cmd中,輸入 npm install ejsexcel --save 便可爲當前項目引入ejsExcel模塊數據庫
(3)新建一個js文件,在裏面寫代碼。npm
我用webstrom創建了main.js文件,在裏面完成邏輯代碼。數組
(4)新建resource目錄,保存待會兒用到的excel文件函數
新建了一個excel文件,在裏面寫好數據,準備在程序中讀取。網站
這是我建立的excel文件:
2.編寫邏輯代碼
(1)引入ejsExcel和fs模塊
let ejsExcel=require('ejsexcel');
let fs=require('fs');
(2)使用fs將excel文件讀取到buffer中
let exBuf=fs.readFileSync(__dirname+'/resource/test.xlsx');
(3)使用ejsExcel的getExcelArr將buffer讀取爲數組
<1>使用getExcelArr函數讀取buffer後,獲得的是excel工做表文件
let workBook=exlJson;
<2>拿到工做表裏面的第一個工做簿
let workSheets=workBook[0];
<3>有了工做簿以後,就能夠讀取裏面每行數據了。
workSheets.forEach((item,index)=>{
console.log((index+1)+" row:"+item.join(' '));
})
這是打印結果:
3.最後附上全部代碼和個人項目的github地址
(1)main.js文件全部代碼:
let ejsExcel=require('ejsexcel');
let fs=require('fs');
let exBuf=fs.readFileSync(__dirname+'/resource/test.xlsx');
ejsExcel.getExcelArr(exBuf).then(exlJson=>{
console.log("************ read success:getExcelArr");
let workBook=exlJson;
let workSheets=workBook[0];
workSheets.forEach((item,index)=>{
console.log((index+1)+" row:"+item.join(' '));
})
}).catch(error=>{
console.log("************** had error!");
console.log(error);
});
(2)本次deom的 github地址:
https://github.com/qianlizhe/ejsExcelDemo