node-xlsx处理excel

引用node-xlsx

npm install node-xlsx -save

文件中引用

const xlsx = require('node-xlsx')

读取excel

const sheet = xlsx.parse('C:\\Users\\cyb\\Desktop\\test.xlsx');//数组
sheet为数组每一项代表一个sheet页
sheet[0].name为第一页名称 sheet[0].data为第一页数据集(为二维数组)

写入excel

引入fs模块
const fs = require('fs')

let createXlsx = [{ name: '测试', data: [[123, 222, 333], [456, 444, 555]] }];

let url="C:\\Users\\cyb\\Desktop\\a.xlsx";

fs.writeFileSync(url, xlsx.build(createXlsx), "binary")

写入名称为a.xlsx的文件

使用

写入
router.get('/write', async (ctx, next) => {
  let createXlsx = [{ name: '测试', data: [[123, 222, 333], [456, 444, 555]] }];
  let url = "C:\\Users\\cyb\\Desktop\\a.xlsx";
  if (fs.existsSync(url)) {
    console.log(`${url}文件存在,开始删除`);
    fs.unlinkSync(url);
    console.log('删除成功');
  }
  console.log(`开始写入`, new Date());
  fs.writeFileSync(url, xlsx.build(createXlsx), 'binary');
  ctx.body = {
    title: "write"
  }
})
读取
router.get('/read', async (ctx, next) => {
  let url = 'C:\\Users\\cyb\\Desktop\\test.xlsx';
  // sheet 中 sheet.name sheet名字 sheet.data sheet数据
  fs.open(url, 'r', (err, rd) => {
    if (err) {
      if (err.code === 'ENOENT') {
        console.error(`${url}不存在`);
        return;
      }
    }
    const sheet = xlsx.parse(url);//数组
    for (const i of sheet) {
      for (const j of i['data']) {
        console.log(j);
      }
    }
  })
  ctx.body = {
    title: 'read'
  }
})
posted @ 2020-04-01 15:11  萝卜爱吃肉  阅读(771)  评论(0编辑  收藏  举报