@christophervr/ ole2 (英语)
框架中性类型Script 编码器 MS-CFB / OLE2 化学式 复合文件及其上建的遗留二进制 Office格式. 在保存未触及的字节时,将文件解析成一个已键入、可编辑的文档,更改所支持的内容并再次序列化.
| 格式 | 延长 | 文档类 |
|---|---|---|
| 单词 97-2003 | .doc | DocDocument |
| Excel BIFF8 (英语) | .xls | XlsDocument |
| PowerPoint 97-2003 (英语) | .ppt | PptDocument |
| Visio( 二进制) | .vsd | VsdDocument |
| 任何复合文件 | 任意 | CfbDocument |
安装
npm install @christophervr/ole2
没有运行时间依赖 。 带有TypeScript声明的无害环境管理,适用于Node.js 22+和浏览器.
快开始
import { parseOle2, parseDoc, parseXls, parsePpt, parseVsd } from '@christophervr/ole2';
const document = parseOle2(bytes); // CFB | DOC | XLS | PPT | VSD
if (document.kind === 'xls') document.sheets[0]!.cell(1, 0).value = 'Updated';
const ppt = parseOle2<'ppt'>(pptBytes, { expect: 'ppt' });
ppt.slides[0]!.texts[0]!.text = 'Native title updated';
const saved = ppt.serialize();
parseDoc, (中文(简体) ), parseXls, (中文(简体) ), parsePpt 财务报告和审定财务报表 parseVsd 返回混凝土课。 支持的设置器以交易方式执行; 不支持的编辑不改变字节或脏态 。 默认解析回到带有诊断的CFB检查视图,当办公室模型不支持或模棱两可,而检查 expect 转而投出.
import { buildOle2, parseOle2 } from '@christophervr/ole2';
const bytes = buildOle2(new Map([['Example', new Uint8Array([1, 2, 3])]]));
console.log(parseOle2(bytes, { expect: 'cfb' }).getStream('Example'));
包含的内容
- 文件模式 用于DOC、XLS、PPT和VSD,并带有已检查的解析和交易编辑.
- MS-CFB容器:流读取和写作,小流,FAT/DIFAT,在位流再大小和摘要信息元数据.
- 单词:主正文段落,丰富运行,直接格式化和被守护的文本编辑.
- 单词格式数字 :
readDocFormatting(bytes, limits?)返回样式表、列表定义和实例、字体和主层段落,并按字符位置键入,通过样式级联解决了打出字符和段落属性(保留了草作样式引用)。 只读; 以DocFormattingLimits返回时undefined用于无法读取或加密的文件. - 单词模式数字 :
readDocModel(bytes, limits?)将格式化,对象和结构编成每个故事的一块树: 有格式化的内行项目(文本,图片,字段标记,书签,注释和注释引用,形状和文本框锚地)的段落,有嵌入的单元格块的表格,有其页眉和页脚故事,样式,列表和字体的段落. 每个故事都有格式化,不仅仅是主要的故事. 见docs/doc-model.md。 。 。 . - 埃克塞尔:全工作本读取(单元格,缓存的公式结果,样式,合并,注释,超链接,名称)和打入的单元格编辑.
- 电源点: 活动幻灯片、文本、形状和注释、限定文本和几何编辑以及二进制
.ppt编剧( e)buildPptFile) (中文(简体) ). - 维西奥: 第11版页,形状,绘图顺序,变形,文本和几何等,并有保存文本和转换编辑功能.
- 出版商:集装箱检查.
每种格式都有一个支持的子集,该子集在站点上而不是在此被记录:参见 格式指南 编辑 限制页面。 。 。 .
文档
文献网站由来自 docs/ 目录.
本地运行它 bun run docs:dev。 。 。 .
发展
bun install --frozen-lockfile
bun run typecheck
bun run test
bun run build
bun run test:package
bun run docs:build
被包装的烟雾测试将柏油球安装到一个独立的临时npm项目并练习公共API. 建筑会自己清理 dist 因此已删除的编码器不能留在发布中 。 只编译出输出,许可,通知 和这艘读取到npm的飞船.
许可证
阿帕奇2.0 (英语).