Собрать данные из нескольких файлов-таблиц в одну таблицу

Автор kompilainenn, 13 сентября 2018, 16:44

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

kompilainenn

Есть несколько рабочих файлов-таблиц, с которыми работают разные люди. Лежат они в локальной сети. Исходные данные в исходных таблицах расположены в одних и тех же столбцах. Может ли Либра собрать данные из определенных столбцов этих таблиц в одну новую таблицу в отдельный файл так, чтобы данные можно было в новой таблице актуализировать, если изменились исходные данные?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

JohnSUN

Если изменились и ФАЙЛ БЫЛ СОХРАНЁН, то можно. Причём несколькими способами. Тип импортируемых данных какой?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

mikekaganski

Sheet→Insert Sheet from File...→
  • Link - не то?
С уважением,
Михаил Каганский

JohnSUN

Точно! Потом из всех этих "вставленных" листов формулами (возможно с HYPERLINK) выдрать данные в итоговый лист, а сами "вставленные" листы скрыть
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

kompilainenn

Цитата: JohnSUN от 13 сентября 2018, 16:51
Если изменились и ФАЙЛ БЫЛ СОХРАНЁН, то можно. Причём несколькими способами. Тип импортируемых данных какой?
Тип данных текст, даты и числа с запятой
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kompilainenn

Цитата: mikekaganski от 13 сентября 2018, 14:52Sheet→Insert Sheet from File...→
Link - не то?
а оно умеет несколько источников данных сливать в один итог?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kompilainenn

#6
Цитата: mikekaganski от 13 сентября 2018, 14:52Sheet→Insert Sheet from File...→
Link - не то?
МЕГА тормоза и зависон даже при импорте одного листа из всего одной таблицы, что же будет дальше.
И как финал, при попытке сгруппировать столбцы оно просто начало сохранять файл автосохранением и словило фриз.

вариант отпадает, он нерабочий по производительности
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

JohnSUN

А дальше ты пойдёшь покупать новый компьютер...
Или будешь сливать на локальный диск копии всех этих сетевых файлов...
Или забьёшь на глупую задачу и пойдёшь пить пиво...

В последнем случае - мысленно с тобой
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

economist

Хм, Excel спокойно на 40 листов формулами подгружает 200 строк на 50 полей за 20-30 секунд. 40 Файлов на сетевых дисках. Думаю и Calc может так же.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

kompilainenn

Цитата: economist от 13 сентября 2018, 21:18
Хм, Excel спокойно на 40 листов формулами подгружает 200 строк на 50 полей за 20-30 секунд. 40 Файлов на сетевых дисках. Думаю и Calc может так же.
в Эксель задача была решена использованием Power Query, меня устраивает (кроме пары мелочей, типа необходимости поправить запрос ручками, чтобы числовые данные были ограничены до 2 знаков после запятой), но производительность считай моментальная
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kompilainenn

Цитата: economist от 13 сентября 2018, 19:18Думаю и Calc может так же.
ну попробуй, как там сможет Calc. От моих данных в 30 столбцов и 2000 строк, он подавился
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kompilainenn

Цитата: JohnSUN от 13 сентября 2018, 16:00Или забьёшь на глупую задачу и пойдёшь пить пиво...
я так и сделал, пошел с ИТшниками отмечать 256 день года.
ИТшники были такие: программер, бывший админ-эникей, бывший инженер сетевик, инженер-геологоразведчик и я :D
Рассказал им про Либру :D
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Rafik

#12
Есть костыльная идея: если имена файлов и их место расположения подчиняются каким-то шаблонам, то можно попробовать собрать данные внешним скриптом (java, python и т.д.) в БД, например sqlite. Привязать базу к "сводному" документу. Скрипт запускается *.bat файлом и этот же батник, после отработки скрипта, откроет документ с данными из БД. Есть недостаток: каждый раз придется закрывать документ и дёргать батник, чтобы увидеть изменения.

economist

Если уж и городить СУБД, то можно насоздавать по числу ODS - столько же ODB-шек (пойдет движок HSQLDB, но FireBird/SQLite лучше, дальновиднее что-ли), а затем макросом в мастер-ODS-е перебрать их все по-очереди. Чтение в массивы по SELECT * FROM table немногим быстрее чем все другие способы, но если нужно не "всё", а кое-что - SQL-запросы будут самым быстрым и бронебойным подходом, позволяющим на лету многое сконвертировать итд. 

В этом случае BAT-ники не нужны, а самое главное - допустима полная анархия в именах всех ODS, а ODB можно создать "правильно" и информативно: Главбух.odb, Завгар.odb итд.

Кстати, описанная ситуация довольно распространенная. Решаться она может персональными ODT-формами, складывающими все данные сразу, напрямую в БД.

У меня в подобной ситуации трудится SQLite (файл расшарен по сети 100/1000Gbit) - позволяет комфортно собирать данные с 15-25 машин в течение всего раб. дня (порядка 500 вводимых чисел/строк)  и при этом безвозбранно на чтение выполнять за этот же день порядка 300 запросов для отчетов. База 3 Гб, охватывает 2 года и содержит помимо ручных данных с 15-25 машин с Calc/Excel - ещё и все проводки от трех 1С7/8, СКУДа, АСУТП, SCADA. Под одной крышей данным живется очень дружно, а уж как запросы пишутся - загляденье.

Безсерверные информационные системы имеют право на жизнь, т.к. административные барьеры даже в частных компаниях напрочь отбивают охоту кодить для людей (а ведь это главное предназначение программистов). Файл *.sqlite лежащий на сетевой шаре позволяет, скажем, не спрашивая ни у кого разрешения - подключиться к ней тем же SQLite Manager (плагин для старого FireFox) и "на ходу" добавить поле в таблицу, за минуту. А чтобы сделать это с серверными СУБД - уйдет неделя согласований.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...