@ betteroffice/ xlsx (韩语)
无框架 XLSX 解析、公式计算、编辑和渲染 发动机。 包括画布画、取景口、点击测试、无障碍和剪贴板帮助.
安装
bun add @betteroffice/xlsx
无对等依存.
使用量
工作表、行和列指数都是零的,所以 editCell(0, 9, 2, ...) 在单元格 C10 上写入
第一页.
import { initWasm, openWorkbook } from '@betteroffice/xlsx';
export async function updateWorkbook(bytes: Uint8Array): Promise<Uint8Array> {
await initWasm();
const workbook = openWorkbook(bytes);
try {
workbook.editCell(0, 9, 2, '=SUM(C1:C9)');
return workbook.save();
} finally {
workbook.dispose();
}
}
单元格输入解析文本、数字、布尔和公式;
公式从 =。编辑单元格重新计算其依赖.
入境点
这些入境点出口自 @betteroffice/xlsx数字 :
| 进入点 | 说明 |
|---|---|
initWasm(input?) | 初始化引擎;同时调用共享初始化. |
openWorkbook(bytes, options?) | 打开 XLSX 字节作为同步 WorkbookHandle 初始化后. |
openWorkbookSession(bytes, options?) | 在有同步接入功能的专职工人中打开工作手册. |
paintDisplayList(ctx, frame, dpr, origin?) | 将显示列表绘入画布 2D 上下文 . |
isPngExportAvailable() | 检查初始化引擎是否支持PNG导出. |
isProposalsAvailable() | 检查初始化引擎是否支持编辑提案. |
exportXlsxStructured(bytes, options?) | 从字节同步导出存储的工作簿内容 . |
exportXlsxMarkdown(bytes, options?, markdownOptions?) | 从字节同步导出 Markdown . |
initWasm() 默认加载已装入的 WASM 资产。 通过 WASM 字节或编译
WebAssembly.Module 在无法获取此 URL 的运行时间中。 完成后处理工作簿手柄.
Canvas 渲染和网格辅助工具
WorkbookHandle.displayList(viewport) 返回活动工作表的显示列表。 备份存储大小
对于设备像素比,并给出其逻辑 CSS 维度 :
import { paintDisplayList, type WorkbookHandle } from '@betteroffice/xlsx';
export function drawWorkbook(workbook: WorkbookHandle, canvas: HTMLCanvasElement) {
const dpr = window.devicePixelRatio || 1;
canvas.width = 800 * dpr;
canvas.height = 600 * dpr;
canvas.style.width = '800px';
canvas.style.height = '600px';
const ctx = canvas.getContext('2d');
if (!ctx) throw new Error('Canvas 2D is unavailable');
const frame = workbook.displayList({ x: 0, y: 0, width: 800, height: 600 });
paintDisplayList(ctx, frame, dpr);
}
用于自定义网格 cellAtPoint, (中文(简体) ), cellRect,以及 rangeRect 用于测试和几何,
buildA11yGrid 用于获取数据,以及 toTsv 编号 : fromTsv 用于剪贴板文本.
这个 @betteroffice/xlsx/headless 输入导出纯网格助手和类型而不包含画画
或WASM装载机.
范围移动
workbook.moveRange(sheet, source, destination) 在工作表中移动 A1 区域并重写
引用一个倒移步骤; 目的地是新的左上单元格。 移动时的表面错误
拒绝而不是丢弃原始工作手册.
打印和PNG 导出
workbook.printDisplayList(sheet, range, metrics, gridlines) 使用 PrintMetrics
从工作簿的普通字体中测量。 呼叫者选择纸张大小、边距和页码;
paintDisplayList 接受支持存储像素中的可选来源,用于定位结果.
workbook.renderPng(viewport) 导出活动工作表的视图. workbook.renderRangePng() 出口
使用范围,或接受 { range, scale } 以选择 A1 范围和光栅尺度。 两人返回PNG
字节同步; 检查 isPngExportAvailable() 在叫他们之前.
工人会议
低层 openWorkbookSession API( 也从 @betteroffice/xlsx/worker)为
实验 它返回一个 WorkbookSession 与
通过承诺返回业务 session.call,加同步键 session.save() 财务报告和审定财务报表
session.dispose() 方法。 。 .
React编辑器默认使用工人并暴露出自己的同步API. 使用
@betteroffice/xlsx-react 为编辑UI.
编辑建议
workbook.propose(agentId, note, edits) 阶段单元格编辑以供审查而不应用.
listProposals, (中文(简体) ), acceptProposal,以及 rejectProposal 管理队列; 接受应用
作为撤消步骤并重新计算受抚养人的建议。 检查 isProposalsAvailable() 首先是:;
接受掷出 StaleProposalError 如果目标细胞在集结后有所改变.
版本已检查的编辑批次
readCells 返回带有其版本的单元格; validateEdits 检查一批没有承诺,
财务报告和审定财务报表 applyEdits 应用所有步骤或返回打入的拒绝,而不修改工作簿.
见 在版本检查的批次中编辑 XLSX
对于目标,守卫, 支持的步骤,和限制.
有结构的出口
exportStructured 财务报告和审定财务报表 exportMarkdown 用定位锚和诊断读取承诺内容
不计算公式。 见
用锚导出 XLSX 内容
用于范围、隐藏内容、限制和以字节为基础的出口.
协作
这个 @betteroffice/xlsx/collaboration 进口 CollaborationProvider 用于连接复制品
到二进制运输。 见 协作指南
供货商生命周期、运输装置和共享起始状态.
打开工作簿 openWorkbook(bytes, { collaborative: true })合作工作手册
同步单元格内容、公式、样式、列宽和行高,与本地撤销和
重做它的效果同步.
结构编辑:插入或删除行和列,添加、去除、移动或重命名
工作表,并更改图表或定义的名称.
操作简介
editCellProfiled, (中文(简体) ), applyOpsProfiled,以及 displayListProfiled 返回引擎阶段持续时间
毫秒与结果。 见
操作简介。 。 。 .