Импорт и экспорт
Перед использованием API браузера выполните интеграцию импорта и экспорта. Приложение реализует загрузку, конвертацию, опрос задач и скачивание с проверкой доступа. API снимков также требуют сервера конвертации. Пример Exchange предназначен для Sheets; поддержку других продуктов и форматов проверяйте отдельно.
Поддерживаемые форматы
В таблице указаны форматы браузерных API этой страницы. Для преобразования файлов Office нужен сервер с поддержкой соответствующего типа документа и формата.
| Импорт | Экспорт |
|---|---|
.xls, .xlsx, .csv, .tsv | .xlsx, .csv, .tsv |
Facade API
Импорт
Примечание о режиме плагинов
Импортировать пакет Facade вручную нужно только в режиме плагинов. В режиме предустановок соответствующий пакет Facade уже включён, поэтому дополнительный импорт не требуется.
import '@univerjs-pro/exchange-client/facade'import '@univerjs-pro/sheets-exchange-client/facade'Импорт .xlsx
Импорт файла .xlsx с получением unitId
Внимание
Для этого способа требуется совместная работа: он создаёт документ на сервере и возвращает unitId. Если совместная
работа не включена, используйте импорт по снимку.
Когда совместное редактирование включено, у каждого документа есть уникальный unitId. Вызов univerAPI.importSheetToUnitIdAsync с параметром file возвращает unitId, по которому можно получить доступ к документу. В качестве параметра file можно передать объект File или URL удалённого файла.
import '@univerjs-pro/collaboration-client/facade'const unitId = await univerAPI.importSheetToUnitIdAsync(file)if (unitId) { await univerAPI.getCollaboration().loadSheetAsync(unitId)}Импорт файла .xlsx с получением IWorkbookData
Для импорта по снимку совместная работа не требуется. Для документов с совместным доступом используйте импорт по
unitId.
С помощью univerAPI.importSheetToSnapshotAsync можно импортировать файл .xlsx и получить данные документа в формате IWorkbookData.
// Accept a File objectconst snapshot = await univerAPI.importSheetToSnapshotAsync(file)// Or accept a remote file URL// const snapshot = await univerAPI.importSheetToSnapshotAsync('https://example.com/filename.xlsx');// Create a new workbook via snapshotif (snapshot) univerAPI.createWorkbook(snapshot)Экспорт .xlsx
Экспорт файла .xlsx по unitId
Внимание
Для экспорта по unitId требуется совместная работа. Если она не включена, используйте экспорт по снимку.
Когда совместное редактирование включено, у каждого документа есть уникальный unitId. Вызов univerAPI.exportSheetByUnitIdAsync с параметром unitId возвращает объект File.
const fWorkbook = univerAPI.getActiveWorkbook()const unitId = fWorkbook.getId()const file = await univerAPI.exportSheetByUnitIdAsync(unitId)// Download the file through the Facade APIif (file) univerAPI.downloadFile(file, 'univer', 'xlsx')Экспорт файла .xlsx из IWorkbookData
Вызов univerAPI.exportSheetBySnapshotAsync с данными IWorkbookData возвращает объект File.
const fWorkbook = univerAPI.getActiveWorkbook()const snapshot = fWorkbook.save()const file = await univerAPI.exportSheetBySnapshotAsync(snapshot)// Download the file through the Facade APIif (file) univerAPI.downloadFile(file, 'univer', 'xlsx')Удаление встроенных меню и UI-взаимодействий для импорта и экспорта
Univer больше не включает встроенные меню и UI-взаимодействия для импорта и экспорта. Базовые сервисы и Facade API остаются доступными.
Если вашему приложению нужны прежние меню и UI-взаимодействия для импорта и экспорта, используйте пример миграции встроенных меню и UI-взаимодействий для импорта и экспорта, чтобы реализовать их с помощью собственного плагина. Полный исходный код примера доступен для просмотра онлайн и скачивания.
Насколько полезно это руководство?