Files
QOffice/README.md
T
2026-06-01 19:35:11 +03:00

9.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-абзацев читает выравнивание, переносы строк, разрывы страниц, табуляцию, внешние гиперссылки, простые таблицы, базовые растровые изображения, явные цвета текста, подсветку, размер и семейство шрифта из OOXML, а при экспорте DOCX сохраняются заголовки, абзацы, переносы строк, разрывы страниц, табуляция, выравнивание абзацев, списки, простые таблицы, внешние гиперссылки, базовые растровые изображения и базовое inline-форматирование текста: полужирный, курсив, подчеркивание, зачеркивание, цвет текста, подсветка, размер и семейство шрифта.
  • QExcell открывает .xlsx и сохраняет .xlsx; сетка расширяется по фактически заполненным ячейкам, поддерживает несколько листов, скрытые и veryHidden листы через sheet state, закрепленные области через sheetViews pane, скрытие сетки через sheetView showGridLines, масштаб листа через sheetView zoomScale, автофильтр через autoFilter ref, цвет вкладки листа через sheetPr tabColor, ширину колонок через cols/col width, высоту строк через row ht/customHeight, активный лист через workbookView activeTab, формулы за пределами стартового диапазона A-H, shared formulas XLSX с относительными ссылками, базовые merged cells, внешние и внутренние гиперссылки ячеек, базовые диаграммы листа и базовое форматирование ячеек: полужирный, курсив, подчеркивание, зачеркивание, размер и семейство шрифта, прямые RGB/theme/indexed цвета текста с учетом xl/theme/theme1.xml, заливку, горизонтальное и вертикальное выравнивание, перенос текста, границы и цвет границ ячеек, числовые форматы XLSX для дат, процентов, денежных и дробных значений.
  • QPowerPoint открывает .pptx и сохраняет .pptx; импорт учитывает порядок слайдов из presentation.xml, переносы абзацев и ручные переносы строк a:br внутри текстовых блоков, скрытые слайды через атрибут show, а также заметки докладчика через relationships слайда, сохраняет скрытые слайды, заметки докладчика, базовые растровые изображения слайдов, пользовательский цвет фона слайда, а также цвет, размер и семейство шрифта текста заголовка/подзаголовка.
  • QOutlook открывает .eml и одиночные сообщения Outlook .msg, сохраняет письма в .eml; импорт EML поддерживает простые текстовые письма, multipart/alternative, multipart/mixed, multipart/related, text/plain, fallback из text/html в читаемый текст, base64, quoted-printable, MIME encoded-word заголовки UTF-8/windows-1251, MIME-вложения и inline-вложения с Content-ID, To, Cc и Bcc. Импорт MSG читает тему, отправителя, получателей To/Cc/Bcc, текст/HTML body и вложения, если эти поля доступны в MSG-файле. Новые письма можно адресовать через To/Cc/Bcc и сохранять в 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-форматирование, явные w:br, w:br w:type="page", w:tab, w:color, w:shd, w:highlight, w:sz, w:rFonts и w:strike для переносов строк/разрывов страниц/табуляции/цвета/подсветки/размера/семейства/зачеркивания текста DOCX, выравнивание абзацев DOCX, внешние гиперссылки DOCX, внешние и внутренние гиперссылки XLSX, базовые растровые изображения DOCX/PPTX, простые таблицы, несколько листов, скрытые/veryHidden листы через sheet state, закрепленные области через sheetViews pane, скрытие сетки через sheetView showGridLines, масштаб листа через sheetView zoomScale, автофильтр через autoFilter ref, цвет вкладки листа через sheetPr tabColor, ширину колонок через cols/col width, высоту строк через row ht/customHeight и активный лист XLSX через workbookView activeTab, ячейки, формулы, shared formulas XLSX с относительными ссылками, базовые merged cells, базовые стили, RGB/theme/indexed цвета XLSX с учетом xl/theme/theme1.xml, размеры и семейства шрифта, зачеркивание ячеек, горизонтальное и вертикальное выравнивание, перенос текста, границы и цвет границ ячеек, числовые форматы и простые bar/line/pie диаграммы ячеек XLSX, текстовые слайды PPTX с переносами абзацев и ручными переносами строк a:br при импорте, скрытые слайды PPTX через атрибут show, пользовательский фон слайдов PPTX, цвет, размер и семейство шрифта текста заголовка/подзаголовка PPTX, импорт и экспорт заметок докладчика, адресацию To/Cc/Bcc, MIME encoded-word заголовки UTF-8/windows-1251, MIME-вложения EML, inline-вложения EML с Content-ID и базовые поля одиночных MSG-писем. Сложные стили, макросы, сложные диаграммы, сложное позиционирование и обтекание изображений, PST, экспорт MSG и полная fidelity документов Microsoft Office в текущем инкременте не заявлены.

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

npm run dist:desktop