['功能类别', '冷热水龙头', '是否一般纳税人', '是', '认证', '无', '阀芯类型', '陶瓷片阀芯', '品牌', '用米', '货号', 'YM-6039', '型号', 'YM-6039', '安装型式', '坐立式', '材质', '太空铝', '阀座直径', '35', '工作温度', '咨询客服', '公称压力', '咨询客服', '适用类型', '脸盆龙头', '结构形式', '双联式', '规格', 'YM-6039', '开启方式', '扳手式', '加工定制', '是', '净重', '0.549g(g(克))', '是否跨境出口专供货源', '是', '主要下游平台', 'wish,速卖通,独立站,LAZADA,其他', '主要销售地区', '南美,东南亚,北美,中东,其他', '有可授权的自有品牌', '是', '表面工艺', '阳极氧化', '风格', '现代简约', '使用场景', '卫生间面盆水龙头'] ['温州卓艺卫浴有限责任公司'] ['background: url("https://cbu01.alicdn.com/img/ibank/O1CN01ZXUjDC23KbL5od2FU_!!2217862847237-0-cib.jpg") center center / contain no-repeat; width: 36px; height: 36px; margin-right: 10px;'] ['YM-6039', '66.90元', '906个可售'] 如何将这样的输出结果导入excel表格中
时间: 2025-06-17 15:49:58 浏览: 21
### 将结构化输出导入到Excel表格中的方法
为了将包含产品信息、公司名称、CSS样式和库存数据的结构化输出导入到Excel表格中,可以使用 ExcelJS 或其他类似的库来完成此任务。以下是具体实现方式:
#### 1. 数据准备
确保所有需要导入的数据已经被正确解析并存储在内存中。例如,假设我们有一个 JSON 格式的结构化数据,如下所示:
```json
[
{
"productName": "Product A",
"companyName": "Company X",
"cssStyle": "background-color: #f0f0f0; font-weight: bold;",
"stockQuantity": 120
},
{
"productName": "Product B",
"companyName": "Company Y",
"cssStyle": "color: red; font-size: 14px;",
"stockQuantity": 50
}
]
```
#### 2. 安装依赖
首先需要安装 ExcelJS 库以处理 Excel 文件的生成与导出。可以通过 npm 安装该库:
```bash
npm install exceljs
```
#### 3. 使用 ExcelJS 创建 Excel 文件
以下代码展示了如何使用 ExcelJS 将上述结构化数据导入到 Excel 表格中,并保留 CSS 样式。
```javascript
const Excel = require('exceljs');
// 示例数据
const data = [
{
productName: "Product A",
companyName: "Company X",
cssStyle: "background-color: #f0f0f0; font-weight: bold;",
stockQuantity: 120
},
{
productName: "Product B",
companyName: "Company Y",
cssStyle: "color: red; font-size: 14px;",
stockQuantity: 50
}
];
// 创建一个新的工作簿
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('Products');
// 添加表头
worksheet.columns = [
{ header: 'Product Name', key: 'productName', width: 20 },
{ header: 'Company Name', key: 'companyName', width: 20 },
{ header: 'CSS Style', key: 'cssStyle', width: 30 },
{ header: 'Stock Quantity', key: 'stockQuantity', width: 15 }
];
// 添加数据行
data.forEach(rowData => {
const row = worksheet.addRow(rowData);
// 解析并应用 CSS 样式
if (rowData.cssStyle.includes('background-color')) {
const backgroundColorMatch = rowData.cssStyle.match(/background-color:\s*([^;]+);/);
if (backgroundColorMatch) {
row.getCell(1).fill = {
type: 'pattern',
pattern: 'solid',
fgColor: { argb: hexToArgb(backgroundColorMatch[1]) }
};
}
}
if (rowData.cssStyle.includes('font-weight: bold')) {
row.getCell(1).font = { bold: true };
}
if (rowData.cssStyle.includes('color')) {
const colorMatch = rowData.cssStyle.match(/color:\s*([^;]+);/);
if (colorMatch) {
row.getCell(1).font = { color: { argb: hexToArgb(colorMatch[1]) } };
}
}
});
// 辅助函数:将十六进制颜色转换为 ARGB 格式
function hexToArgb(hex) {
hex = hex.replace('#', '');
return `FF${hex}`;
}
// 导出文件
workbook.xlsx.writeBuffer().then(buffer => {
console.log('Excel file generated successfully!');
});
```
#### 4. 样式映射
在上述代码中,CSS 样式被解析并映射到 Excel 的单元格样式中。例如:
- `background-color` 被转换为 Excel 的背景填充颜色。
- `font-weight: bold` 被转换为加粗字体。
- `color` 被转换为字体颜色。
#### 5. 导出文件
最后,通过 `writeBuffer()` 方法生成 Excel 文件的二进制数据,可以将其保存为文件或通过 HTTP 响应返回给客户端。
---
### 注意事项
- ExcelJS 不直接支持 CSS 样式,因此需要手动解析 CSS 并将其映射到 Excel 的样式属性中[^1]。
- 如果数据量较大,建议分批写入以优化性能。
- 确保输入数据的格式一致,避免因数据异常导致程序错误。
---
阅读全文
相关推荐















