# 가져오기 및 내보내기

- Human documentation: [https://docs.univer.ai/ko-KR/guides/docs/features/import-export](https://docs.univer.ai/ko-KR/guides/docs/features/import-export)

- Agent Markdown: [https://docs.univer.ai/ko-KR/guides/docs/features/import-export.md](https://docs.univer.ai/ko-KR/guides/docs/features/import-export.md)

- Requested language: `ko-KR`

- Content language: `ko-KR`

- Documentation version: `1.0.4`

- Source: [docs/features/import-export.ko-KR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/docs/features/import-export.ko-KR.mdx)

---

아래 브라우저 API를 사용하기 전에 [가져오기·내보내기 통합](https://docs.univer.ai/ko-KR/server/import-export.md)을 완료하세요. 앱에서 업로드, 변환, 작업 조회 및 권한이 적용된 다운로드 계약을 구현해야 합니다. 스냅샷 API도 변환 백엔드가 필요합니다. [Exchange 예제](https://docs.univer.ai/ko-KR/server/collaboration/examples.md#exchange)는 Sheets를 다루므로 다른 제품과 형식의 지원 범위는 별도로 확인하세요.

#### Package metadata

```json
{
  "preset": [
    {
      "client": "@univerjs/preset-docs-advanced",
      "locale": "@univerjs/preset-docs-advanced/locales/ko-KR",
      "style": "@univerjs/preset-docs-advanced/lib/index.css"
    }
  ],
  "plugins": [
    {
      "client": "@univerjs-pro/exchange-client",
      "locale": "@univerjs-pro/exchange-client/locale/ko-KR",
      "style": "@univerjs-pro/exchange-client/lib/index.css",
      "facade": "@univerjs-pro/exchange-client/facade"
    },
    {
      "client": "@univerjs-pro/docs-exchange-client",
      "facade": "@univerjs-pro/docs-exchange-client/facade",
      "locale": "@univerjs-pro/docs-exchange-client/locale/ko-KR"
    }
  ],
  "license": true,
  "server": true
}
```

## 지원 형식

아래 표는 이 페이지의 브라우저 API가 지원하는 형식입니다. Office 파일 변환에는 해당 문서 유형과 형식을 지원하는 백엔드가 필요합니다.

| 가져오기            | 내보내기    |
| --------------- | ------- |
| `.doc`, `.docx` | `.docx` |

## Facade API

### 가져오기

> [!INFO: 플러그인 모드 참고 사항]
> 플러그인 모드에서만 Facade 패키지를 직접 가져와야 합니다. 프리셋 모드에는 해당 Facade 패키지가 이미 포함되어 있으므로
> 별도로 가져올 필요가 없습니다.

```typescript
import '@univerjs-pro/exchange-client/facade'
import '@univerjs-pro/docs-exchange-client/facade'
```

### `.docx` 가져오기

#### `.docx` 파일을 가져오고 `unitId` 받기

> [!WARNING: 주의]
> 이 메서드를 사용하려면 협업 기능이 필요합니다. 서버 문서를 만들고 `unitId`를 반환합니다. 협업 기능을 사용하지 않는다면
> 스냅샷 가져오기를 사용하세요.

협업 편집을 사용하면 각 문서에 고유한 `unitId`가 부여됩니다. `file` 매개변수와 함께 `univerAPI.importDocToUnitIdAsync`를 사용하면 문서에 접근할 수 있는 `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` 받기

> [!NOTE]
> 스냅샷 가져오기는 협업 기능이 필요하지 않습니다. 협업 문서에는 
> 
> `unitId`
> 
>  가져오기를 사용하세요.

`univerAPI.importDocToSnapshotAsync`를 사용해 `.docx` 파일을 가져오면 `IDocumentData` 형식의 문서 데이터가 반환됩니다.

```typescript
// Accept a File object
const snapshot = await univerAPI.importDocToSnapshotAsync(file)
// Or accept a remote file URL
// const snapshot = await univerAPI.importDocToSnapshotAsync('https://example.com/filename.docx');

// Create a new document via snapshot
if (snapshot) univerAPI.createDocument(snapshot)
```

### `.docx` 내보내기

#### `unitId`를 사용해 `.docx` 파일 내보내기

> [!WARNING: 주의]
> `unitId` 내보내기를 사용하려면 협업 기능이 필요합니다. 협업 기능을 사용하지 않는다면 스냅샷 내보내기를 사용하세요.

협업 편집을 사용하면 각 문서에 고유한 `unitId`가 부여됩니다. `unitId` 매개변수와 함께 `univerAPI.exportDocByUnitIdAsync`를 사용하면 `File` 객체가 반환됩니다.

```typescript
const fDocument = univerAPI.getActiveDocument()
const unitId = fDocument.getId()
const file = await univerAPI.exportDocByUnitIdAsync(unitId)

// Download the file through the Facade API
if (file) univerAPI.downloadFile(file, 'univer', 'docx')
```

#### `IDocumentData`를 사용해 `.docx` 파일 내보내기

> [!NOTE]
> 스냅샷 내보내기는 협업 기능이 필요하지 않으며 로컬 워크플로에 적합합니다.

`IDocumentData`와 함께 `univerAPI.exportDocBySnapshotAsync`를 사용하면 `File` 객체가 반환됩니다.

```typescript
const fDocument = univerAPI.getActiveDocument()
const snapshot = fDocument.save()
const file = await univerAPI.exportDocBySnapshotAsync(snapshot)

// Download the file through the Facade API
if (file) univerAPI.downloadFile(file, 'univer', 'docx')
```
