Импорт и экспорт файлов
Преобразуйте файлы Office в снимки продуктов и сохраняйте изменённые снимки в файлы.
Преобразование связывает внешние форматы с моделями содержимого Univer. Импорт разбирает файл в Snapshot соответствующего продукта, а экспорт сериализует снимок в выбранный выходной формат.
От файла к снимку
.xlsx, .docx и .pptx — пакеты OOXML с XML и ресурсами, например изображениями. .xls, .doc и .ppt используют старые двоичные структуры; CSV и TSV — текстовые форматы. Передайте исходный поддерживаемый файл: модуль выполнит декодирование, разбор пакета и сопоставление ресурсов.
Snapshot хранит состояние содержимого продукта для сохранения и восстановления. Структуры данных шести продуктов
Импорт: файл → Snapshot
Разбирает содержимое, стили и ресурсы в модель Sheet, Doc, Slide, Relational Table или другого продукта.
Экспорт: Snapshot → файл
Читает текущий снимок и создаёт структуру и ресурсы целевого формата. Снимок — модель содержимого среды выполнения, обычно передаваемая и сохраняемая в JSON.
Пример Sheet: расчёт формул, сводных таблиц и числовых форматов согласно политике с обновлением Snapshot. Подробнее: серверные вычисления.
Структуры данных Snapshot
У каждого продукта есть интерфейс Snapshot для сохранения содержимого и ссылок на ресурсы, обычно в JSON. Ссылки ведут к определениям полей, типам и примерам.
| Продукт | Интерфейс Snapshot | Основное содержимое |
|---|---|---|
| Электронные таблицы (Sheet) | IWorkbookData | Листы, ячейки, общие стили и ресурсы плагинов. |
| Документы (Doc) | IDocumentData | Текст, абзацы, стили, колонтитулы и ресурсы. |
| Презентации (Slide) | ISlideData | Слайды, элементы, образцы, темы и ресурсы. |
| Реляционная таблица (Relational Table) | IBaseSnapshot | Таблицы, поля, записи, представления и их порядок. |
| Холст (Canvases) | IBoardData | Страницы, элементы, темы и ресурсы. |
IPdfUnitData | Исходный документ, сохраняемое состояние правок и привязки ресурсов. |
Получите текущий снимок через save() в Facade продукта и восстановите его соответствующим API создания. Изменяйте активное содержимое через Facade API. Для PDF метод pdf.save() сохраняет исходную основу и editState.
Форматы по продуктам
Форматы Office и табличных данных ниже соответствуют прямым маршрутам Rust Exchange. PDF обрабатывается отдельным модулем.
| Продукт | Импорт / компиляция | Экспорт | Особенности |
|---|---|---|---|
| Электронные таблицы (Sheet) | .xls, .xlsx, .csv, .tsv | .xlsx, .csv, .tsv | CSV/TSV содержит один лист. |
| Документы (Doc) | .doc, .docx | .docx | Старый DOC импортируется в модель Docs; экспорт выполняется в DOCX. |
| Презентации (Slide) | .ppt, .pptx | .pptx | Старый PPT импортируется в Slides; экспорт выполняется в PPTX. |
| Реляционная таблица (Relational Table) | .xls, .xlsx, .csv, .tsv | .xlsx, .csv, .tsv | CSV/TSV содержит одну таблицу; XLSX поддерживает сопоставление таблиц и полей. |
| Холст (Canvases) | Mermaid (.mmd / исходный текст) | .pptx | Mermaid создаёт черновик импорта: примените его через Canvases Facade и сохраните снимок. PPTX экспортирует активную страницу. |
.pdf | .pdf | Требуется служба преобразования PDF, отдельная от Rust Exchange CLI. |
- Старые
.xls,.docи.pptподдерживаются на входе; выходные форматы —.xlsx,.docxи.pptxсоответственно. - При экспорте CSV/TSV выбирается один лист или таблица Relational Table. Для сохранения полной модели и ресурсов используйте снимок продукта.
- Допустимые расширения зависят от точки входа SDK. Для
.xlsm,.pptm,.ppsx,.ppsmи.potxпроверьте сервер и браузерный API: это не дополнительные имена прямых форматов Rust CLI.
Вычисления при преобразовании
Поддерживаемые сценарии преобразования электронных таблиц могут включать серверные вычисления:
- Формулы: заполнение отсутствующих кешированных результатов при импорте либо пересчёт перед экспортом согласно выбранной политике.
- Сводные таблицы: расчёт группировок и агрегатов по исходным данным и настройкам с записью результатов в снимок или выходную книгу.
- Числовые форматы: получение отображаемого текста дат, процентов, валют и других значений. CSV/TSV позволяет выбрать отображаемые или исходные значения.
Связанный процесс описан в разделе Headless и серверные вычисления.
Интеграция
Преобразование файлов относится к Server SDK. Приложение предоставляет загрузку, задачи, хранилище и скачивание. Преобразование снимков работает без совместного редактирования; экспорт общего документа читает подтверждённую ревизию после синхронизации изменений.
Начните с Интеграции преобразования и Преобразования в Node.js.
Поддержка формата и сохранение отдельных функций при обратном преобразовании проверяются отдельно. Используйте списки функций и реальные файлы для проверки формул, изображений, стилей и расположения.
Насколько полезно это руководство?