nodejs讀取xlsx檔案

來源:互聯網
上載者:User

標籤: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檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.