node实现excel文件与JSON数据格式互转

 

使用node脚本处理excel,需要先安装【node-xlsx】,即【npm install node-xlsx】,写好下面脚本后,执行【node ./transferExcelToArray.js】,然后你就会在同文件夹下面发现生成了一个【array.json】文件。

1. excel转JSON文件

复制代码
// excel转JSON文件 transferExcelToJSON.js
const path = require('path');
var xlsx = require('node-xlsx');
const fs = require('fs');
var obj = xlsx.parse(__dirname + '/年度绩效评价表.xlsx');
// 把第一行表头去掉了
var excelObj = obj[0].data.slice(1);
let list = [];
excelObj.forEach(one => {
  let obj = {
    subFundTypeName: one[1],
    type: one[2],
    score: one[5],
    name: one[4],
    fundYear: one[0],
  };
  list.push(obj);
});
fs.writeFileSync(path.resolve(process.cwd(), './array.json'), JSON.stringify(list), function (error) {
  console.log(error);
});
复制代码

 

2.JSON转excel文件

复制代码
const path = require('path');
const fs = require('fs');
const xlsx = require('node-xlsx');

let data = fs.readFileSync(path.resolve(__dirname, './array.json'), 'utf-8');
data = JSON.parse(data);
let tableData = [
    ["名称","分数","日期"],
    ...data.map(one=>{
        return [one.name,one.score,one.date]
    })
]
//引入生成excel的依赖包
const list = [
  {
    name: 'sheet', // 工作薄的名称
    data: tableData ,
    // [
    //   ['表头1', '表头2', '表头3'],
    //   ['第1行第1列', '第1行第2列', '第1行第3列'],
    //   ['第2行第1列', '第2行第2列', '第2行第3列'],
    // ]
  },
  // 如果多个工作薄, 就是多个对象。格式如上
];
// 使用提供的构建 xlsx 文件的方法
const buffer = xlsx.build(list);
fs.writeFile('导出的excel名称.xlsx', buffer, function (err) {
  if (err) {
    console.log(err, '导出excel失败');
  } else {
    console.log('导出excel成功!');
  }
});
复制代码

 

posted @   蛙仔  阅读(389)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-03-21 树型数据的操作处理
点击右上角即可分享
微信分享提示