標籤:data erro ssi stat doc log cas strong name
依賴包:multiparty,XLSX,代碼如下:
var multiparty = require(‘multiparty‘);var XLSX = require("xlsx");var form = new multiparty.Form();function to_json(workbook,id){ // 擷取 Excel 中所有表名,返回 [‘sheet1‘, ‘sheet2‘] var sheetNames = workbook.SheetNames; sheetNames.forEach(function(sheetName) { //擷取每個sheet的資料。 var worksheet = workbook.Sheets[sheetName]; var tempArray = XLSX.utils.sheet_to_json(worksheet); tempArray.forEach(function(ele){ //擷取每一條記錄 ele.state = ele.state || 0; ele.create_time = ele.modify_time = utils.formatDate(); ele.modify_user = username; }); result[sheetName] = tempArray; }); // 把所有資料都已經讀取到記憶體中去了 return result; }form.parse(req, function(err, fields, files) { if(err){ throw new Error("form is error"); } /*{ "fileToUpload": [ { "fieldName": "fileToUpload", "originalFilename": "test.xlsx", "path": "/var/folders/tk/jwcqj5_x74lgdzfcdhv248x00000gn/T/TILXemNkWT5V2YoNDXpxnEeS.xlsx", "headers": { "content-disposition": "form-data; name=\"fileToUpload\"; filename=\"test.xlsx\"", "content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, "size": 9389 } ] } */ var filename = files.fileToUpload[0].originalFilename; var suffixArray = filename.split(‘.‘); var suffix = suffixArray[suffixArray.length - 1].toLowerCase(); if( suffix != "xlsx" && suffix != "xls"){ throw new Error("只能上傳xlsx,xls格式的檔案"); }else{ //伺服器臨時儲存檔案的路徑 var filepath = files.fileToUpload[0].path; console.log("讀取的xlsx檔案路徑為:"+filepath); var workbook = XLSX.readFile(filepath); var result = to_json(workbook,req.session.login_username); //刪除伺服器臨時儲存檔案的路徑 fs.unlink(filepath,function(err){ console.error(filepath + "檔案刪除失敗!"+err); }); }});
nodejs讀取xlsx檔案