后台exceljs导出
时间: 2025-01-18 07:23:16 浏览: 43
### 如何在服务器端使用 ExcelJS 导出 Excel 文件
为了实现在服务器端通过 `ExcelJS` 库导出 Excel 文件的功能,可以采用 Node.js 环境下的解决方案。此方法允许创建复杂的 Excel 文档并将其发送给客户端下载。
#### 安装依赖库
首先,在项目的根目录下安装必要的 npm 包:
```bash
npm install express exceljs file-saver
```
这里不仅包含了用于操作 Excel 的核心包 `exceljs`,还引入了 Web 框架 Express 和辅助保存文件至本地的工具 `file-saver`[^3]。
#### 创建基础服务结构
接着定义一个简易的服务框架以便处理请求和响应:
```javascript
const express = require('express');
const app = express();
app.use(express.json());
// 设置静态资源路径(可选)
app.use('/static', express.static('public'));
// 启动监听
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
```
这段代码片段初始化了一个基于 Express 构建的基础 HTTP 服务器实例,并配置其运行于指定端口上[^4]。
#### 实现导出逻辑
随后编写具体的业务函数来构建工作簿对象并向其中填充数据,最终返回生成好的 .xlsx 文件供用户下载:
```javascript
const fs = require('fs');
const path = require('path');
const ExcelJS = require('exceljs');
async function exportToExcel(req, res) {
try {
const workbook = new ExcelJS.Workbook();
let worksheet = await workbook.addWorksheet('SheetName'); // 添加表单
// 插入列头信息
worksheet.addRow(['ID', '姓名', '年龄']);
// 假设有一组记录要写入表格内
const dataRows = [
['1', '张三', '28'],
['2', '李四', '22']
];
dataRows.forEach(rowData => worksheet.addRow(rowData));
// 输出流准备
const buffer = await workbook.xlsx.writeBuffer();
// 发送HTTP响应头部信息
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=example.xlsx");
// 流式传输二进制内容给浏览器
res.end(buffer);
} catch (error) {
console.error(error.message);
res.status(500).send({ message: error.message });
}
}
// 绑定路由处理器
app.get('/api/export-excel', exportToExcel);
```
上述脚本展示了如何利用 `ExcelJS` 动态地向新的 Excel 工作薄里追加多条记录,并通过 API 接口的形式提供给前端调用者获取该文档的能力[^1].
阅读全文
相关推荐


















