xlxs转成Unicode编码的json文件

/**
 * 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`);  
}  
原文地址:https://www.cnblogs.com/yhquan/p/12132086.html