求Nodejs 将数据写入xls或者xlsx文件中的代码实例

求Nodejs 将数据写入xls或者xlsx文件中的代码实例

1.将数据写入xls或者xlsx文件中的代码实例 2.不会出现乱码和打不开现象
我现在用的几个包都出现生成的xlsx文件用excel打不开现象 提示发现不可读取内容 ,最终打开的文件中中文丢失

4 回复

当然可以。在Node.js中,你可以使用一些流行的库来处理Excel文件,例如 xlsxexceljs。这两个库都可以用来创建、读取和修改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');

解释

  1. 数据结构:示例中的数据是一个二维数组,其中第一行是列标题。
  2. 创建工作簿:使用库中的相应方法创建一个新的工作簿对象。
  3. 添加数据:将数据添加到工作表中,可以使用数组格式(如 xlsx 库)或对象格式(如 exceljs 库)。
  4. 保存文件:将工作簿保存到指定的 .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’);

要解决将数据写入 .xls.xlsx 文件,并确保不出现乱码或文件无法打开的问题,可以使用 xlsx 这个库。该库功能强大,支持创建、读取和修改 Excel 文件。

首先,你需要安装 xlsx 库:

npm install xlsx

接下来是创建一个简单的示例,将一些数据写入一个 .xlsx 文件:

const XLSX = require('xlsx');

// 创建一些示例数据
const data = [
    ['姓名', '年龄', '邮箱'],
    ['张三', 30, 'zhangsan@example.com'],
    ['李四', 25, 'lisi@example.com']
];

// 创建工作簿对象
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, 'output.xlsx');

上述代码首先导入了 xlsx 库,并创建了一些示例数据。接着,我们创建了一个新的工作簿对象,并将数据转换为工作表对象。然后,我们将这个工作表添加到工作簿中,并通过 XLSX.writeFile 方法将数据写入 output.xlsx 文件中。

这样生成的文件应该能够被大多数现代 Excel 程序正确打开,并且不会有乱码问题,因为默认情况下,xlsx 库会正确处理字符编码。

如果你需要写入 .xls 文件,可以尝试使用 exceljs 或其他支持 .xls 格式的库,但需要注意的是 .xls 是一个较旧的格式,不是所有的现代 Excel 应用程序都能完美支持。

回到顶部