@christophervr/ole2

中文文档
0.14.0发布于 2026/10/30Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 9605

共享 MS- CFB 复合文件及遗留 Microsoft Office 二进制编码器

中文使用文档
文档目录6 节
  1. 安装
  2. 快开始
  3. 包含的内容
  4. 文档
  5. 发展
  6. 许可证

@christophervr/ ole2 (英语)

npm version CI license types

框架中性类型Script 编码器 MS-CFB / OLE2 化学式 复合文件及其上建的遗留二进制 Office格式. 在保存未触及的字节时,将文件解析成一个已键入、可编辑的文档,更改所支持的内容并再次序列化.

格式延长文档类
单词 97-2003.docDocDocument
Excel BIFF8 (英语).xlsXlsDocument
PowerPoint 97-2003 (英语).pptPptDocument
Visio( 二进制).vsdVsdDocument
任何复合文件任意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 (英语).

版本与发布记录

@christophervr/ole2 共发布 16 个版本,首次发布于 2026/09/27;过去 12 个月发布了 16 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.14.0latest2026/10/3010 天前
0.13.02026/10/061 个月前
0.12.02026/10/031 个月前
0.11.02026/10/031 个月前
0.10.12026/10/031 个月前
0.10.02026/10/031 个月前

关于 @christophervr/ole2 的常见问题

@christophervr/ole2 是什么?

共享 MS- CFB 复合文件及遗留 Microsoft Office 二进制编码器

如何安装 @christophervr/ole2?

在项目目录运行 npm install @christophervr/ole2,或使用 pnpm add / yarn add / bun add。

@christophervr/ole2 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@christophervr/ole2 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@christophervr/ole2 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@christophervr/ole2 可以商用吗?

@christophervr/ole2 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@christophervr/ole2 的下载量有多少?

根据 npm 官方下载统计,@christophervr/ole2 在 2026/10/10 – 2026/11/08 这 30 天内被下载 9,605 次,日均约 320 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@christophervr/ole2 还在维护吗?

最新版本 0.14.0 发布于 2026/10/30(10 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/09/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。