XLSX
快速开始
使用 @office-open/xlsx 在 5 分钟内创建你的第一个 .xlsx 电子表格
只需三步即可从头创建电子表格:定义数据、构建工作簿、导出文件。
第一步 — 安装
pnpm add @office-open/xlsx
npm install @office-open/xlsx
yarn add @office-open/xlsx
bun add @office-open/xlsx
第二步 — 创建工作簿
import { generateWorkbook } from "@office-open/xlsx";
const buffer = await generateWorkbook({
worksheets: [
{
name: "Sales",
rows: [
{
cells: [
{ value: "Product", style: { font: { bold: true } } },
{ value: "Q1", style: { font: { bold: true } } },
{ value: "Q2", style: { font: { bold: true } } },
],
},
{ cells: [{ value: "Widget" }, { value: 100 }, { value: 150 }] },
{ cells: [{ value: "Gadget" }, { value: 200 }, { value: 250 }] },
],
},
],
});
也可以使用 JSON API:
{
"worksheets": [
{
"name": "Sales",
"rows": [
{ "cells": [{ "value": "Product" }, { "value": "Q1" }, { "value": "Q2" }] },
{ "cells": [{ "value": "Widget" }, { "value": 100 }, { "value": 150 }] },
{ "cells": [{ "value": "Gadget" }, { "value": 200 }, { "value": 250 }] }
]
}
]
}
import { generateWorkbook } from "@office-open/xlsx";
const buffer = await generateWorkbook({
worksheets: [
{
name: "Sales",
rows: [
{ cells: [{ value: "Product" }, { value: "Q1" }, { value: "Q2" }] },
{ cells: [{ value: "Widget" }, { value: 100 }, { value: 150 }] },
{ cells: [{ value: "Gadget" }, { value: 200 }, { value: 250 }] },
],
},
],
});
第三步 — 导出
// Node.js — 写入文件
import { writeFileSync } from "node:fs";
import { generateWorkbook } from "@office-open/xlsx";
const buffer = await generateWorkbook({
worksheets: [
/* ... */
],
});
writeFileSync("output.xlsx", buffer);
// 浏览器 — 下载文件
import { generateWorkbook } from "@office-open/xlsx";
const blob = await generateWorkbook(
{
worksheets: [
/* ... */
],
},
{ type: "blob" },
);
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "output.xlsx";
a.click();
多个工作表
import { generateWorkbook } from "@office-open/xlsx";
const buffer = await generateWorkbook({
worksheets: [
{
name: "Summary",
rows: [{ cells: [{ value: "Total" }, { value: 500 }] }],
},
{
name: "Details",
rows: [
{ cells: [{ value: "Item" }, { value: "Amount" }] },
{ cells: [{ value: "A" }, { value: 200 }] },
{ cells: [{ value: "B" }, { value: 300 }] },
],
},
],
});
输出格式
generateWorkbook 函数支持多种输出格式。同步版本为 generateWorkbookSync,流式版本为 generateWorkbookStream。完整列表请参阅页面。
| 方法 | 返回值 | 适用场景 |
|---|---|---|
generateWorkbook(opts) | Buffer | Node.js 文件 I/O |
generateWorkbook(opts, { type: "blob" }) | Blob | 浏览器下载 |
generateWorkbook(opts, { type: "base64" }) | string | Data URL、API 负载 |
generateWorkbookSync(opts) | Buffer | 同步生成 |
generateWorkbookStream(opts) | Stream | 流式输出 |