# @christophervr/ole2 中文文档

规范地址：https://npmcn.com/package/%40christophervr/ole2/

版本：0\.14\.0
npm 元数据更新时间：2026-10-30T05:44:49.837Z
中文译文更新时间：2026-11-09T15:05:15.749Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40christophervr/ole2
原文对照：https://npmcn.com/package/%40christophervr/ole2/?lang=original
项目主页：https://christophervr.github.io/ole2/
源码仓库：https://github.com/ChristopherVR/ole2

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.4 MB，660 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-09-26T21:11:26.089Z
- 最新版本发布：2026-10-30T05:44:49.496Z
- 近 30 天下载量：9605（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

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

## 安装

```sh
npm install @christophervr/ole2
```

也可以使用：`pnpm add @christophervr/ole2`、`yarn add @christophervr/ole2`、`bun add @christophervr/ole2`

## README

# @christophervr/ ole2 (英语)

[![npm version](https://img.shields.io/npm/v/%40christophervr%2Fole2.svg)](https://www.npmjs.com/package/@christophervr/ole2) [![CI](https://github.com/ChristopherVR/ole2/actions/workflows/ci.yml/badge.svg)](https://github.com/ChristopherVR/ole2/actions/workflows/ci.yml) [![license](https://img.shields.io/npm/l/%40christophervr%2Fole2.svg)](https://github.com/ChristopherVR/ole2/blob/main/LICENSE) [![types](https://img.shields.io/npm/types/%40christophervr%2Fole2.svg)](https://www.npmjs.com/package/@christophervr/ole2)

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

| 格式 | 延长 | 文档类 |
| --- | --- | --- |
| 单词 97-2003 | `.doc` | `DocDocument` |
| Excel BIFF8 (英语) | `.xls` | `XlsDocument` |
| PowerPoint 97-2003 (英语) | `.ppt` | `PptDocument` |
| Visio( 二进制) | `.vsd` | `VsdDocument` |
| 任何复合文件 | 任意 | `CfbDocument` |

[文档](https://christophervr.github.io/ole2/) • 妇女 [限制](https://christophervr.github.io/ole2/limitations) • 妇女 [无](https://www.npmjs.com/package/@christophervr/ole2)

* * *

## 安装

```bash
npm install @christophervr/ole2
```

没有运行时间依赖 。 带有TypeScript声明的无害环境管理,适用于Node.js 22+和浏览器.

## 快开始

```ts
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` 转而投出.

```ts
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版页,形状,绘图顺序,变形,文本和几何等,并有保存文本和转换编辑功能.
-   **出版商**:集装箱检查.

每种格式都有一个支持的子集,该子集在站点上而不是在此被记录:参见 [格式指南](https://christophervr.github.io/ole2/formats/models) 编辑 [限制页面](https://christophervr.github.io/ole2/limitations)。 。 。 .

## 文档

文献网站由来自 `docs/` 目录.

-   [开始](https://christophervr.github.io/ole2/getting-started)
-   [文件模式](https://christophervr.github.io/ole2/formats/models)
-   [API 参考](https://christophervr.github.io/ole2/api)
-   [PPT 导出](https://christophervr.github.io/ole2/ppt-export)
-   [限制](https://christophervr.github.io/ole2/limitations)

本地运行它 `bun run docs:dev`。 。 。 .

## 发展

```sh
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 是什么？

共享 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 和提交记录判断。

