求Nodejs 将数据写入xls或者xlsx文件中的代码实例
求Nodejs 将数据写入xls或者xlsx文件中的代码实例
1.将数据写入xls或者xlsx文件中的代码实例
2.不会出现乱码和打不开现象
我现在用的几个包都出现生成的xlsx文件用excel打不开现象 提示发现不可读取内容 ,最终打开的文件中中文丢失
4 回复
当然可以。在Node.js中,你可以使用一些流行的库来处理Excel文件,例如 xlsx
和 exceljs
。这两个库都可以用来创建、读取和修改Excel文件。以下是一些示例代码,展示如何使用这些库将数据写入 .xlsx
文件,并确保不出现乱码或文件无法打开的问题。
使用 xlsx
库
首先,你需要安装 xlsx
库:
npm install xlsx
然后,你可以使用以下代码将数据写入 .xlsx
文件:
const XLSX = require('xlsx');
// 示例数据
const data = [
['姓名', '年龄', '城市'],
['张三', 28, '北京'],
['李四', 34, '上海']
];
// 创建工作簿对象
const workbook = XLSX.utils.book_new();
// 将数据转换为工作表
const worksheet = XLSX.utils.aoa_to_sheet(data);
// 添加工作表到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 生成文件并保存到指定路径
XLSX.writeFile(workbook, 'example.xlsx');
使用 exceljs
库
同样地,你需要先安装 exceljs
库:
npm install exceljs
然后,你可以使用以下代码将数据写入 .xlsx
文件:
const ExcelJS = require('exceljs');
// 创建一个新的工作簿对象
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet1');
// 添加数据
worksheet.columns = [
{ header: '姓名', key: 'name', width: 15 },
{ header: '年龄', key: 'age', width: 10 },
{ header: '城市', key: 'city', width: 15 }
];
worksheet.addRow({ name: '张三', age: 28, city: '北京' });
worksheet.addRow({ name: '李四', age: 34, city: '上海' });
// 生成文件并保存到指定路径
workbook.xlsx.writeFile('example.xlsx');
解释
- 数据结构:示例中的数据是一个二维数组,其中第一行是列标题。
- 创建工作簿:使用库中的相应方法创建一个新的工作簿对象。
- 添加数据:将数据添加到工作表中,可以使用数组格式(如
xlsx
库)或对象格式(如exceljs
库)。 - 保存文件:将工作簿保存到指定的
.xlsx
文件中。
通过以上代码示例,你应该能够正确地将数据写入 .xlsx
文件,并避免乱码和文件无法打开的问题。
能把你现在用的方法简单说一下么
var xlsx = require(‘node-xlsx’); var fs = require(‘fs’); var obj = {“worksheets”:[{“data”:[[“姓名”,“性别”,“年龄”]]}]}; var file = xlsx.build(obj); fs.writeFileSync(‘user.xlsx’, file, ‘binary’);