/** * EXCEL转JSON * 需要先安装xlsx模块:npm i xlsx * 执行命令:node excel.js test.xlsx Sheet1 outer.json * 参数1(必填) EXCEL路径 * 参数2(必填) 表名 * 参数3(选填) 生成的JSON文件名 */ let arguments = process.argv.splice(2); if (!Array.isArray(arguments) || arguments.length < 2) { return void console.log("缺少参数,参考命令示例:node excel.js test.xlsx Sheet1 outer.json"); } try { let fs = require('fs'); let xl = require('xlsx'); //获取参数 let filePath = arguments[0]; let sheetName = arguments[1]; //读取EXCEL let workbook = xl.readFileSync(filePath); let worksheet = workbook.Sheets[sheetName]; //解析成json数据 let data = xl.utils.sheet_to_json(worksheet); console.log("表格解析成功,正在转为JSON文件..."); //输出JSON文件 let jsonName = arguments[2] ? arguments[2] : "outer.json"; let newData = JSON.stringify(data); let docData = JSON.parse(newData); let currentData = docData.map((item) => { return { id: item.id + "", name: encodeUnicode(item.name) } }); fs.writeFile(jsonName, JSON.stringify(currentData), (err) => { if (err) { console.log("写入JSON文件时出错, 请重试"); } else { console.log("已成功生成JSON文件:" + jsonName); } }); } catch (e) { console.log(e); } // Unicode 编码格式 function encodeUnicode(str) { var res = []; for ( var i=0; i<str.length; i++ ) { res[i] = ( "00" + str.charCodeAt(i).toString(16) ).slice(-4); } return `\u` + res.join(`\u`); }