Чтение html-файла LibreOffice Calc

Автор Massaraksh7, 5 мая 2026, 07:37

0 Пользователи и 1 гость просматривают эту тему.

Massaraksh7

Хочу формировать некоторые виды отчётов (большие) в Html-файлах, поскольку ни Excel, ни LibreOffice Calc по скорости формирования не устраивают категорически. Если небольшие отчёты ещё как-то проходят, то с отчётами даже и в 1000 строк ожидание измеряется двузначным числом минут. В Html же это проходит в сотни раз быстрее. Поэтому идея такая: формируем html, затем открываем его excel/calc и огромный выигрыш по времени. Но тут появилась проблема: во вложении 4 файла
1. Пример html-файла
2. Как он выглядит в Firefox.
3. Как он выглядит после импорта в Excel
4. Как он выглядит после импорта в LibreOffice Calc
Что тут можно сделать?
P.S.: Я так понял, LOC не понимает, что колонки фиксированные.

economist

#1
HTML это много-много тегов, и когда что-то не закрыто или вложено или не экранировано - получается как на скрине или еще хуже. LibreOffice честнее обрабатывает HTML, и местами это выглядит хуже чем в Excel, где шалости исправляли десятилетиями.

Возможно вам будет полезен мой опыт. Большие 10k-100k строк отчеты я тоже формирую как HTML, но как готовый отчет для просмотра в браузере на ПК и телефоне, с инкапсулрованным JavaScript с кнопками сортировки по столбцам, быстрым (мгновенным) поиском по первым введенным символам в окошком, готовым экспортом кнопками в CSV или открытием уже разумного небольшого числа строк в Excel/Calc. Все это работает и выглядит безупречно.

Если нужно просто править огромный отчет (но зачем?) - правьте в Calc сам CSV/TXT. Calc умеет в этих форматах сохранять даже формулы и перевычислять их при открытии.

Утилиты типа csvtotable.exe и тп для магического однострочника, превращающего неказистый CSV/TXT из табл процессора в быстрый "живой" HTML - ищите на https://github.com

Полученный HTML можно довольно смело кромсать внешними утилитами, кодом BASIC, Python - для целей улучшения, вставки эмодзи, a-ссылок в заголовках, TOC и навбаров и т.п. фишек, полезных в огромных отчетах (ИИ в помощь). Для успешной вставки воткните в нужное место в Calc словечко, которое потом - замените на свою подстроку (или используйте слово из самого отчета, но следите за вставляемыми тегами, парностью кавычек и экранированием спецсимволов).
Пить не буду коньяка - читану Питоньяка!

bigor

Цитата: Massaraksh7 от  5 мая 2026, 07:37после импорта в LibreOffice Calc
у вас открыто в Writer. У меня вложенный файл в Writer открывается красивее, если включен вид обычный (по умолчанию)
Поддержать наш форум можно здесь

gabix

Сходный результат если открыть всё-таки именно в Calc:


bigor

Цитата: gabix от  5 мая 2026, 10:47Сходный результат
в calc игнорирует установленную ширину столбцов.
Поддержать наш форум можно здесь

gabix

Ну да, игнорирует. По импорту файлов HTML в Calc, вроде, есть пара-тройка багрепортов, но это направление явно не приоритетное у разработчиков.

Massaraksh7

Цитата: bigor от  5 мая 2026, 10:39у вас открыто в Writer.
Да, действительно. Но в Calc не лучше.
Цитата: bigor от  5 мая 2026, 10:49в calc игнорирует установленную ширину столбцов.
Можно, конечно, автоматом макрос запустить, что установить нужную ширину столбцов, но там не только с этим проблемы, там и выравнивание, и границы...
Цитата: gabix от  5 мая 2026, 10:52но это направление явно не приоритетное у разработчиков.
Жаль.

bigor

Цитата: Massaraksh7 от  5 мая 2026, 14:46Но в Calc не лучше
Чем не устраивает writer в нормальном режиме? Пропорции колонок как в браузере.
Поддержать наш форум можно здесь

Massaraksh7

#8
Вот эта имеется в виду (см. вложение)?
1. Первая таблица съехала.
2. Рамок нет, где надо.
3. Выравнивание внутри ячейки не такое, как в оригинале.
4. Формулы не работают (а,  ну да, это же не Calc - снимаю)

Massaraksh7

В общем, пришлось из-за этих недоработок отказаться от идеи html-отчётов. Делаю на fpSpreadSheet. Там, по крайней мере, нет проблем ни с Excel, ни с LibreOffice.

sokol92

Цитата: Massaraksh7 от  5 мая 2026, 07:37Если небольшие отчёты ещё как-то проходят, то с отчётами даже и в 1000 строк ожидание измеряется двузначным числом минут.
Это зависит от используемых технологий. У нас в Calc (и Excel) генерация сложных отчетов из нескольких (десятков) тысяч строк обычно занимает менее минуты.
Основное - минимизировать число обмена данными между Basic (Python) и Calc.
Подобная технология реализована, к примеру, в "Mail Merge".
Владимир.

Massaraksh7

#11
Цитата: sokol92 от  7 мая 2026, 15:25Это зависит от используемых технологий. У нас в Calc (и Excel) генерация сложных отчетов из нескольких (десятков) тысяч строк обычно занимает менее минуты.
Когда я раньше тестировал запись текста макросами и на Excel, и на LOC, тоже всё было гораздо быстрее. А вот когда дошло до реальных отчётов с выравниванием, границами, стилями шрифта, подстрочными и надстрочными символами, цветами, объединениями ячеек, тут-то всё и стало тормозить.
А потом я стал пробовать формировать HTML и открывать его Excel, LOC - и по скорости - небо и земля. То, что считалось минуты/десятки минут - стало выполняться за секунды.
Ну, а сейчас работаю с fpSpreadSheet - тоже очень быстро, и, главное, есть экспорт и в Excel и в LOC. И пока (тьфу-тьфу) коллизий не было. 
Ну, оно и понятно: "компилятор супротив интерпретатора - это как столяр супротив плотника" (почти (С)) :)

economist

Pandas, Polars (Python) тоже очень быстры и являются промстандартом для больших отчётов и визуализаций. fpSpreadSheet все-таки более скромен и экзотичен.

А для web есть очень эффективные Aggrid и др либы. Открыть за пару секунд 100k строк таблицу с интерактивным фильтром и сортировкой в любом браузере - дорогого стоит. Тем более что html очень здорово и безопасно раздается наружу офиса, вопросы доступа и шифрования решены и не требуют усилий.
Пить не буду коньяка - читану Питоньяка!

sokol92

Цитата: Massaraksh7 от  7 мая 2026, 16:48вот когда дошло до реальных отчётов с выравниванием, границами, стилями шрифта, подстрочными и надстрочными символами, цветами, объединениями ячеек, тут-то всё и стало тормозить
Если говорить о ячейках листа, имеющих внутреннее форматирование, то да, мне не известны удобные методы для формирования диапазонов таких ячеек.

В Excel можно использовать параметризованное свойство Value (но об этом мало кто знает  :) ).
Владимир.