Node.js读取excel文件

568 阅读1分钟

日常开发中需要从Excel表格中拿一些数据

比如获得三十多道测试题...

普通的CV大法不仅浪费时间效率不高,而且很容易让人心态炸裂

那么就直接写个脚本来读取Excel表格中的数据吧

node-xlsx

node-xlsx 是一个Node.js的扩展,主要是用于解析和构建 Microsoft Excel 表格,
这个插件基于 [js-xlsx](https://github.com/SheetJS/js-xlsx) 扩展,能够基于
node.js解析Excel文件数据和生成Excel文件

安装

npm install excel node-xlsx

使用方法 读取一个 xlsx 文件到一个数组或者变量

var xlsx = require('node-xlsx');
var obj = xlsx.parse(__dirname + '/myFile.xlsx');
// parses a file
var obj = xlsx.parse(fs.readFileSync(__dirname + '/myFile.xlsx'));
// parses a buffer

通过一个 object 对象创建一个 Excel 文件

var xlsx = require('node-xlsx');
var data = [
  [1,2,3],
  [true, false, null, 'sheetjs'],
  ['foo','bar',new Date('2014-02-19T14:30Z'), '0.3'],
  ['baz', null, 'qux']
];
var buffer = xlsx.build([{name: "mySheetName", data: data}]);
// returns a buffer

示例

var xlsx = require("node-xlsx");
var fs = require("fs");
var obj = xlsx.parse(__dirname + "/test.xlsx"); //配置excel文件的路径
var excelObj = obj[2].data;
const oList = [
  "A、从不",
  "B、很少",
  "C、有时",
  "D、经常",
  "E、频繁",
  "F、总是",
];

let arr = [];
for (let i = 0; i < excelObj.length; i++) {
  const element = excelObj[i];
  let tit = element[1];
  if (tit && i > 0) {
    let obj = {
      title: element[1].split(".")[1],
      options: oList,
    };
    arr.push(obj);
  }
}
console.log(arr);
var jsonContent = JSON.stringify(arr);
fs.writeFile("output.json", jsonContent, "utf8", function (err) {
  if (err) {
    console.log("An error occured while writing JSON Object to File.");
    return console.log(err);
  }

  console.log("JSON file has been saved.");
});