node操作Excel的例子
# 安装依赖
npm install一下以下模块
- node-xlsx(基于Node.js解析excel文件数据及生成excel文件,仅支持xlsx格式文件)
- excel-export(基于Node.js将数据生成导出excel文件,生成文件格式为xlsx)
- fs
# 示例代码
demo.js
const fs = require('fs')
const xlsx = require('node-xlsx')
const nodeExcel = require('excel-export')
// 读取Excel
let exceldata = xlsx.parse('./' + 'xxx.xlsx')
let exportData = []
for (let rowId in exceldata[0]['data']) {
let row = exceldata[0]['data'][rowId]
exportData.push(row[0])
}
// 导出Excel
let conf = {} // excel配置
conf.name = 'sheet' //表格名
// 列名和类型
conf.cols = [
{
caption: '列名',
type: 'string',
},
]
let excelData = new Array()
for (var i = 0; i < exportData.length; i++) {
let arr = new Array()
arr.push(exportData[i])
excelData.push(arr)
}
conf.rows = excelData
let result = nodeExcel.execute(conf)
let path = `${__dirname}/exportdata.xlsx`
fs.writeFile(path, result, 'binary', (err) => {
err ? console.log(err) : null
})
# 常见的npm依赖模块参考
- js-xlsx (opens new window): 目前 Github 上 star 数量最多的处理 Excel 的库,支持解析多种格式表格XLSX / XLSM / XLSB / XLS / CSV,解析采用纯js实现,写入需要依赖nodejs或者FileSaver.js (opens new window)实现生成写入Excel,可以生成子表Excel,功能强大,但上手难度稍大。不提供基础设置Excel表格api例单元格宽度,文档有些乱,不适合快速上手;
- node-xlsx (opens new window): 基于Node.js解析excel文件数据及生成excel文件,仅支持xlsx格式文件;
- excel-parser (opens new window): 基于Node.js解析excel文件数据,支持xls及xlsx格式文件,需要依赖python,太重不太实用;
- excel-export (opens new window): 基于Node.js将数据生成导出excel文件,生成文件格式为xlsx,可以设置单元格宽度,API容易上手,无法生成worksheet字表,比较单一,基本功能可以基本满足;
- node-xlrd (opens new window): 基于node.js从excel文件中提取数据,仅支持xls格式文件,不支持xlsx,有点过时,常用的都是XLSX 格式。