nodejs读取xlsx文件
Posted anthonyliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs读取xlsx文件相关的知识,希望对你有一定的参考价值。
依赖包: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文件的主要内容,如果未能解决你的问题,请参考以下文章