title: 工作簿模型 description: Workbook / Worksheet / Row / Cell 的模型 API 与写入示例 sidebarOrder: 1 outline: deep
工作簿模型
介绍
本页介绍 @cat-kit/excel 的内存模型:Workbook、Worksheet、Row、Cell。这些类用于构建和管理表格数据,再配合 writeWorkbook 输出 xlsx 二进制。
快速使用
ts
import { Workbook, writeWorkbook } from '@cat-kit/excel'
const workbook = new Workbook({ creator: 'cat-kit', createdAt: new Date() })
const sheet = workbook.addWorksheet('Sales', {
frozenPane: { ySplit: 1, topLeftCell: 'A2' }
})
sheet
.setCell('A1', '产品')
.setCell('B1', '销售额')
.setCell('A2', 'Wi-Fi 7 AP')
.setCell('B2', 3600, { numberFormat: '#,##0.00' })
const bytes = writeWorkbook(workbook, { useSharedStrings: true })
const blob = new Blob([bytes], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})vue
| 产品 | 区域 | 销售额 | 日期 | 税额(13%) | |
|---|---|---|---|---|---|
| 企业交换机 | 华东 | 2,800 | 2026-02-10 | 364.00 | |
| Wi-Fi 7 AP | 华南 | 3,600 | 2026-02-12 | 468.00 | |
| 安全网关 | 华北 | 2,200 | 2026-02-15 | 286.00 |
API参考
Workbook
ts
new Workbook(metadata?: WorkbookMetadata)metadata: WorkbookMetadata:工作簿元信息,可写creator、lastModifiedBy、createdAt、modifiedAtaddWorksheet(name, options?):新增工作表;名称为空或重复会抛ExcelSchemaErrorgetWorksheet(nameOrIndex):按名称或索引获取工作表worksheets:工作表快照数组(只读快照)removeWorksheet(name):删除指定工作表,返回是否删除成功
Worksheet
ts
new Worksheet(name: string, options?: WorksheetOptions)row(index):按 1-based 行号创建/获取RowaddRow(values):在当前最大行后追加一行setCell(address, value, style?)/getCell(address):按 A1 地址读写单元格setColumn(index, column)/getColumn(index):设置列定义(width、hidden、style等)getRows()/getColumns():返回排序后的行/列信息maxRowIndex()/maxColIndex():获取当前工作表最大行列号
Row
ts
new Row(index: number)cell(column):按列号或列字母(如1/'A')获取CellsetCell(column, value, style?):设置单元格getCell(column):读取单元格getCells():返回按列排序的[column, cell]数组toValues():转为值数组,空洞补null
Cell
ts
new Cell(value?: CellValue, style?: CellStyle)value:支持string | number | boolean | null | Date | { formula, result? }style:支持字体、填充、边框、对齐、数字格式与保护字段setValue(value)/setStyle(style):链式更新clone():复制单元格;Date会复制为新实例
写出函数
ts
writeWorkbook(workbook: Workbook, options?: WriteOptions): Uint8ArraydateSystem:1900 | 1904,默认1900useSharedStrings:是否启用共享字符串,默认truecompressionLevel:zip 压缩级别
