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'
}
})