Files
QOffice/README.md
T
Курнат Андрей 9bf4dd3672 Initial QOffice implementation
2026-06-01 05:31:05 +03:00

5.2 KiB
Raw Blame History

QOffice

QOffice — оригинальная основа кроссплатформенного офисного пакета с четырьмя приложениями:

  • QWord: редактор документов
  • QExcell: редактор таблиц
  • QPowerPoint: редактор презентаций
  • QOutlook: локальное рабочее пространство почты

Репозиторий не содержит код, ресурсы, брендинг, иконки или проприетарные UI-материалы Microsoft Office.

Запуск

npm install
npm run dev

Desktop-оболочка

npm run electron:dev

Проверка

npm run test
npm run build

Поддержка форматов

  • QWord открывает .docx и сохраняет .docx; при экспорте DOCX сохраняются заголовки, абзацы, выравнивание абзацев, списки, простые таблицы, внешние гиперссылки, базовые растровые изображения и базовое inline-форматирование текста: полужирный, курсив, подчеркивание, цвет текста и подсветка.
  • QExcell открывает .xlsx и сохраняет .xlsx; сетка расширяется по фактически заполненным ячейкам, поддерживает несколько листов, формулы за пределами стартового диапазона A-H, базовые merged cells, внешние гиперссылки ячеек, базовые диаграммы листа и базовое форматирование ячеек: полужирный, курсив, подчеркивание, заливку и числовые форматы XLSX для дат, процентов, денежных и дробных значений.
  • QPowerPoint открывает .pptx и сохраняет .pptx; импорт учитывает порядок слайдов из presentation.xml, читает заметки докладчика через relationships слайда и сохраняет базовые растровые изображения слайдов.
  • QOutlook открывает .eml и одиночные сообщения Outlook .msg, сохраняет письма в .eml; импорт EML поддерживает простые текстовые письма, multipart/alternative, multipart/mixed, text/plain, fallback из text/html в читаемый текст, base64, quoted-printable и MIME-вложения. Импорт MSG читает тему, отправителя, получателей, текст/HTML body и вложения, если эти поля доступны в MSG-файле. Новые письма можно сохранять в EML вместе с добавленными файлами. .pst и экспорт в .msg пока не реализованы.

В desktop-режиме Electron используются системные диалоги открытия и сохранения файлов. В web-режиме остаются браузерный выбор файла и скачивание результата. Экспорт PDF в desktop-режиме выполняется через Electron webContents.printToPDF; в web-режиме команда открывает браузерную печать, где пользователь может выбрать сохранение в PDF.

Desktop-меню поддерживает системные команды для активного модуля:

  • Ctrl/Cmd+O: открыть файл текущего приложения.
  • Ctrl/Cmd+S: сохранить файл текущего приложения.
  • Ctrl/Cmd+Shift+E: экспортировать текущую рабочую область в PDF.
  • Ctrl/Cmd+P: печать текущей рабочей области.

Импорт и экспорт реализуют базовую совместимость с Office Open XML, EML и чтением MSG: текст, базовое inline-форматирование, цвет/подсветку текста и выравнивание абзацев DOCX, внешние гиперссылки DOCX/XLSX, базовые растровые изображения DOCX/PPTX, простые таблицы, несколько листов XLSX, ячейки, формулы, базовые merged cells, базовые стили, числовые форматы и простые bar/line/pie диаграммы ячеек XLSX, текстовые слайды PPTX, заметки докладчика, MIME-вложения EML и базовые поля одиночных MSG-писем. Сложные стили, макросы, сложные диаграммы, сложное позиционирование и обтекание изображений, PST, экспорт MSG и полная fidelity документов Microsoft Office в текущем инкременте не заявлены.

Сборка пакета

npm run dist:desktop