LINUX.ORG.RU

LibreOffice Calc + PostgreSQL

 , ,


0

1

Добрый день, коллеги!

Департамент кадров подкинул задачку (и обещал, что она станет ежеквартальной) обработки результатов опроса сотрудников предприятия, проведённого в Google Forms. Понятно, что результаты выгружены в ODS и, казалось бы - на тебе Calc - обрабатывай, как твоя душа пожелает.

Проблемы в объёме данных: три тысчи сотрудников отвечают на 150 вопросов. HR-департамент хочет видеть эти результаты под такими срезами, что формулы становятся похожи на реферат кандидатской, Calc подвисает на минуты, да, к тому же результат не всегда бывает ожидаемым и приходится перепроверять ячейку за ячейкой.

Хочется вот чего:

  • загнать данные в табличку PostgreSQL (LibreOffice Calc –> Select All –> Ctrl+C –> LibreOffice Base –> Ctrl+V);
  • наделать аналитических запросов (a.k.a. View) уже в PostgreSQL;
  • прилинковать View к Calc через Sheet –> Lint to External Data …
  • по готовым аналитическим срезам нарисовать картинки и графики, понятные бизнес-генералам.

Звучит просто, но затык встретил на предпоследнем шаге, а именно: LibreOffice Calc не видит таблицы в базе LibreOffice Base, смотрящей на базу в PostgreSQL.

Возможно, я что-то делаю не так, а, возможно, такое нужно делать вообще по-другому. Что посоветуете?

#памагити


Ответ на: комментарий от adn

Сильно кодить не хотелось бы, да и некому. У меня в команде отдел разработки и так еле вывозит текущие задачи :(

root66 ()

Параметры –> LibreOffice Base –> Подключения

Там должен быть включен JDBC (ODBC) драйвер для подключения PostgreSQL. Там еще надо указывать параметры подключения чтобы все правильно работало.

Однажды подключался из OpenBase (OpenCalc) к Oracle с параметрами драйвера был квест почти на месяц.

foxy_ant ()
Последнее исправление: foxy_ant (всего исправлений: 1)
Ответ на: комментарий от foxy_ant

Base прекрасно видит базу PostgreSQL через драйвер, идущий в комплекте с LibreOffice. Непонятки начинаются в Calc. Он тоже видит базу, но не видит Tables/Views в ней.

root66 ()

А сводные таблицы не спасут вас?

Kompilainenn ★★★★★ ()

формулы становятся похожи на реферат кандидатской

Ну будут sql запросы похожими на реферат кандидатской. Шиш на шиш

ox55ff ★★★★★ ()

Вообще, я понимаю, что closed source и т.п., но для задачи (если у бизнес-генералов оффтопик установлен) идеально подойдёт PowerBI Desktop: он бесплатный, в нём встроен движок как в свежих excel (PowerQuery), который заточен именно на такие задачи. Источников данных много.

Shadow ★★★★★ ()

Не уверен, что это - прямо и именно то, что я искал, но выглядит вполне себе работоспособно.

Итак:

  • LibreOffice Calc: View –> Data Sources (Ctrl + Shift + F4);
  • найти нужный View в разделе Tables(!);
  • Drag&Drop эту вьюху в самую левую верхнюю ячейку того места, где в табличке Calc хочется видеть вывод этого запроса (View);
  • в документе Calc появится «Range», данные перенесутся в него, но линк с источником не создастся и данные обновляться не будут (на этом шаге задача НЕ решена);
  • теперь можно придать ячейкам какую-то красоту, однако, по-умолчанию всё форматирование слетит при последующем ручном обновлении, если не отредактировать этот Range во View –> Define Range –> Options –> Keep formatting;
  • Обновить данные (а мы помним, что теперь это - Range) можно только за два шага
  1. Data –> Select Range
  2. Data –> Refresh Range

Лайфхак: чтобы не искать View среди таблиц в окошке Data Sources, можно открыть LibreOffice Base, в нём открыть ту самую базу-прокладку ODB, которой мы цепляемся к настоящей базе PostgreSQL, и создать там прокладку Query вида «SELECT * FROM view;». Польз от этого дурацкого, на первый взгляд, упражнения - две:

  1. можно переименовать Query в более читабельный вид (например, используя кириллицу);
  2. можно перелинковывать этот Query с одного View на другой, но в документе Calc ничего изменять будет не нужно: там просто будут подставляться данные из другого View (того, на который смотрит Query).

Ну и, предвосхищая вопрос: вся эта конструкция работает в режиме Read only: даже подлинковав таким образом в Calc таблицу из PostgreSQL, изменять/вводить в неё данные не получится. Только просмотр, что для меня выглядит, как решение задачи.

P.S. Спасибо всем, кто откликнулся! Надеюсь, кому-то ещё это решение поможет в ежедневной практике.

root66 ()
Ответ на: комментарий от root66

эм, судя по посту вся нагрузка уже твоя,
а metabase это хотябы красиво)

pru-mike ★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.