# 导入导出

- Human documentation: [https://docs.univer.ai/zh-CN/guides/slides/features/import-export](https://docs.univer.ai/zh-CN/guides/slides/features/import-export)

- Agent Markdown: [https://docs.univer.ai/zh-CN/guides/slides/features/import-export.md](https://docs.univer.ai/zh-CN/guides/slides/features/import-export.md)

- Requested language: `zh-CN`

- Content language: `zh-CN`

- Documentation version: `1.0.0-rc.0`

- Source: [slides/features/import-export.zh-CN.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/slides/features/import-export.zh-CN.mdx)

---

下方 API 需要配套的转换后端。请先按[导入导出集成](https://docs.univer.ai/zh-CN/server/import-export.md)接好文件上传、转换、任务查询和下载，再配置前端插件。快照 API 也需要转换后端，但不要求创建协同文档。官方协同 Exchange 示例演示 Sheets，接入前请确认目标版本支持所需的文件类型。

#### Package metadata

```json
{
  "preset": [],
  "plugins": [
    {
      "client": "@univerjs-pro/exchange-client",
      "locale": "@univerjs-pro/exchange-client/locale/zh-CN",
      "style": "@univerjs-pro/exchange-client/lib/index.css",
      "facade": "@univerjs-pro/exchange-client/facade"
    },
    {
      "client": "@univerjs-pro/slides-exchange-client",
      "locale": "@univerjs-pro/slides-exchange-client/locale/zh-CN",
      "facade": "@univerjs-pro/slides-exchange-client/facade"
    }
  ],
  "license": true,
  "server": true
}
```

## 支持的格式

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

| 导入              | 导出      |
| --------------- | ------- |
| `.ppt`, `.pptx` | `.pptx` |

`.ppt` 和 `.pptx` 都使用下方的导入 API，导出统一生成 `.pptx`。前端 API 不接受 `.pptm`、`.ppsx`、`.ppsm`、`.potx`；后端支持这些格式，不等于可以通过当前前端 API 导入。

## Facade API

插件模式下需要引入 facade 包：

```ts
import '@univerjs-pro/exchange-client/facade'
import '@univerjs-pro/slides-exchange-client/facade'
```

导入 PPTX 到服务端 unit：

```ts
const unitId = await univerAPI.importSlideToUnitIdAsync(file)
```

导入 PPTX 为本地 slide 数据：

```ts
const slideData = await univerAPI.importSlideToSnapshotAsync(file)

if (slideData) {
  univerAPI.createPresentation(slideData)
}
```

导出当前 slide deck：

```ts
const presentation = univerAPI.getActivePresentation()
const file = await univerAPI.exportSlideBySnapshotAsync(presentation.save())
```

导出服务端 slide unit：

```ts
const file = await univerAPI.exportSlideByUnitIdAsync(unitId)
```
