zoukankan      html  css  js  c++  java
  • 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`);  
    }  
  • 相关阅读:
    Java NIO中的FileLock(文件锁)
    Java NIO中的Channel接口
    Java NIO中的Buffer类
    Java NIO简介
    Java 自定义序列化、反序列化
    Java 对象的序列化、反序列化
    SVN常用操作
    Windows下SVN的下载、安装
    Java RandomAccessFile类
    Java的IO流
  • 原文地址:https://www.cnblogs.com/yhquan/p/12132086.html
Copyright © 2011-2022 走看看