nodejs json转换为excel
时间: 2025-06-29 13:00:32 浏览: 6
### Node.js 中将 JSON 数据导出为 Excel 文件
在 Node.js 中处理 JSON 数据并将其转换成 Excel 文件可以借助多种库来实现。以下是几种常用的方式:
#### 使用 `excel4node` 库
此库提供了简单易用的 API 来创建 Excel 文档。
```javascript
const excel = require('excel4node');
// 创建一个新的工作簿实例
let workbook = new excel.Workbook();
let worksheet = workbook.addWorksheet('Sheet 1');
// 添加一些样式
var style = workbook.createStyle({
font: {
color: '#FF0800',
size: 12,
},
numberFormat: '$#,##0.00; ($#,##0.00); -'
});
// 假设有一个简单的 JSON 数组作为数据源
let jsonData = [
{ name: 'Alice', age: 30, city: 'New York' },
{ name: 'Bob', age: 25, city: 'Los Angeles' }
];
// 将 JSON 转换成表格形式的数据填充到 Excel 表格里
worksheet.cell(1, 1).string('Name').style(style);
worksheet.cell(1, 2).string('Age').style(style);
worksheet.cell(1, 3).string('City').style(style);
jsonData.forEach((item, index) => {
let rowIndex = index + 2;
worksheet.cell(rowIndex, 1).string(item.name);
worksheet.cell(rowIndex, 2).number(item.age);
worksheet.cell(rowIndex, 3).string(item.city);
});
workbook.write('example.xlsx');
```
这段代码展示了如何利用 `excel4node` 构建一个基本的工作表,并向其中写入来自 JSON 的数据[^1]。
#### 使用 `xlsx` 库
另一个强大的选项是 `xlsx`,它支持读取和编写各种电子表格格式,包括 .xls 和 .xlsx 文件。
```javascript
const XLSX = require('xlsx');
function jsonToExcel(jsonData, fileName){
const ws = XLSX.utils.json_to_sheet(jsonData);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "SheetJS");
/* Write to file */
XLSX.writeFile(wb, `${fileName}.xlsx`);
}
jsonToExcel([
{"name": "John", "age": 30},
{"name": "Jane", "age": 26}
], "outputFile");
```
这里定义了一个函数 `jsonToExcel()` 接受两个参数:一个是包含要保存至 Excel 文件的内容的 JSON 对象数组;另一个是要生成的目标文件名。该函数内部调用了 `XLSX.utils.json_to_sheet()` 方法把 JSON 数据转化为 Sheet 格式的对象,再通过 `writeFile()` 函数写出最终的结果文件[^2]。
#### 使用 `excel-export` 插件
对于更复杂的场景,比如需要自定义模板或者有特定需求时,则可以选择像 `excel-export` 这样的插件来进行操作。这种方式允许开发者更加灵活地控制输出文档的具体结构和外观。
```javascript
const express = require('express');
const app = express();
app.get('/export-excel', (req, res) => {
var conf = {};
// 配置项...
var builder = require('excel-export');
var result = builder.buildExportParams(conf);
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.attachment(`${result.fileName}.xlsx`);
result.result.generate(res);
});
```
上述例子展示的是基于 Express 框架的服务端路由设置,在接收到请求后会触发导出逻辑并将生成好的 Excel 发送给客户端浏览器自动下载。
阅读全文
相关推荐


















