首页 > Web开发 > 详细

xlxs转成Unicode编码的json文件

时间:2020-01-02 12:28:41      阅读:73      评论:0      收藏:0      [点我收藏+]
/**
 * 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`);  
}  

xlxs转成Unicode编码的json文件

原文:https://www.cnblogs.com/yhquan/p/12132086.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!