导入导出

下方 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.