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