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

10 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 сохраняются заголовки, абзацы, переносы строк, разрывы страниц, табуляция, выравнивание абзацев, закладки из HTML id, списки, простые таблицы, внешние и внутренние гиперссылки-якоря, базовые растровые изображения и базовое inline-форматирование текста: полужирный, курсив, подчеркивание, зачеркивание, цвет текста, подсветка, размер и семейство шрифта.
  • QExcell открывает .xlsx и сохраняет .xlsx; сетка расширяется по фактически заполненным ячейкам, поддерживает несколько листов, скрытые и veryHidden листы через sheet state, закрепленные области через sheetViews pane, скрытие сетки через sheetView showGridLines, масштаб листа через sheetView zoomScale, автофильтр через autoFilter ref, область печати через _xlnm.Print_Area, цвет вкладки листа через 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, Reply-To, Message-ID, In-Reply-To, References, Importance, X-Priority и Priority. Импорт MSG читает тему, отправителя, получателей To/Cc/Bcc, Reply-To, Message-ID, In-Reply-To, References, Importance, X-Priority и Priority из транспортных заголовков, текст/HTML body и вложения, если эти поля доступны в MSG-файле. Новые письма можно адресовать через To/Cc/Bcc, задавать Reply-To и сохранять в 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 через w:bookmarkStart/w:bookmarkEnd, внешние w:hyperlink r:id и внутренние w:hyperlink w:anchor гиперссылки DOCX, внешние и внутренние гиперссылки XLSX, базовые растровые изображения DOCX/PPTX, простые таблицы, несколько листов, скрытые/veryHidden листы через sheet state, закрепленные области через sheetViews pane, скрытие сетки через sheetView showGridLines, масштаб листа через sheetView zoomScale, автофильтр через autoFilter ref, область печати XLSX через _xlnm.Print_Area, цвет вкладки листа через 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/Reply-To, заголовки цепочки писем Message-ID/In-Reply-To/References, заголовки приоритета Importance/X-Priority/Priority, MIME encoded-word заголовки UTF-8/windows-1251, MIME-вложения EML, inline-вложения EML с Content-ID и базовые поля одиночных MSG-писем. Сложные стили, макросы, сложные диаграммы, сложное позиционирование и обтекание изображений, PST, экспорт MSG и полная fidelity документов Microsoft Office в текущем инкременте не заявлены.

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

npm run dist:desktop