导入导出

下方 API 需要配套的转换后端。请先按导入导出集成接好文件上传、转换、任务查询和下载,再配置前端插件。快照 API 也需要转换后端,但不要求创建协同文档。官方协同 Exchange 示例演示 Sheets,接入前请确认目标版本支持所需的文件类型。

支持的格式

下表列出本页前端 API 支持的格式。Office 文件转换还需要后端支持对应的文档类型和格式。

导入导出
.doc, .docx.docx

.doc 和 .docx 都使用下方的导入 API。导出统一生成 .docx,不支持导出旧版 .doc。

Facade API

导入

插件模式提示

仅插件模式需要手动引入 Facade 包。预设模式已内置对应的 Facade 包,无需额外导入。

TypeScript
import '@univerjs-pro/exchange-client/facade'import '@univerjs-pro/docs-exchange-client/facade'

导入 .docx

导入 .docx 文件并获取 unitId

注意事项

该方法依赖协同服务:导入后会在服务端创建文档并返回 unitId。如果未启用协同,请使用快照导入。

在启用协同编辑的时候,每个文档都有一个唯一的 unitId。使用 univerAPI.importDocToUnitIdAsync 传入 file 参数会返回 unitId,可以通过 unitId 来访问文档。 file 参数可以是一个 File 对象,也可以是远程文件的 URL。

TypeScript
import '@univerjs-pro/collaboration-client/facade'const unitId = await univerAPI.importDocToUnitIdAsync(file)if (unitId) {  await univerAPI.getCollaboration().loadDocAsync(unitId)}

导入 .docx 文件并获取 IDocumentData

使用 univerAPI.importDocToSnapshotAsync 导入 .docx 文件,会返回 IDocumentData 格式的文档数据。

TypeScript
// 接受 File 对象const snapshot = await univerAPI.importDocToSnapshotAsync(file)// 或者接受远程文件的 URL// const snapshot = await univerAPI.importDocToSnapshotAsync('https://example.com/filename.docx');// 通过快照创建一个新的文档if (snapshot) univerAPI.createDocument(snapshot)

导出 .docx

通过 unitId 导出 .docx 文件

注意事项

unitId 导出依赖协同服务。如果未启用协同,请使用快照导出。

在启用协同编辑的时候,每个文档都有一个唯一的 unitId。使用 univerAPI.exportDocByUnitIdAsync 传入 unitId 参数会返回 File 对象。

TypeScript
const fDocument = univerAPI.getActiveDocument()const unitId = fDocument.getId()const file = await univerAPI.exportDocByUnitIdAsync(unitId)// 通过 Facade API 下载文件if (file) univerAPI.downloadFile(file, 'univer', 'docx')

通过 IDocumentData 导出 .docx 文件

快照导出不依赖协同服务,适合仅在本地处理数据的场景。

使用 univerAPI.exportDocBySnapshotAsync 传入 IDocumentData 会返回 File 对象。

TypeScript
const fDocument = univerAPI.getActiveDocument()const snapshot = fDocument.save()const file = await univerAPI.exportDocBySnapshotAsync(snapshot)// 通过 Facade API 下载文件if (file) univerAPI.downloadFile(file, 'univer', 'docx')

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.