Как и возможно ли сопоставить данные из одной таблицы .xlsx с данными из нескольких тысяч .xlsx?
1. Есть несколько тысяч файлов с данными (таблицы .xlsx). Количество и наименование столбцов не однообразны.
2. Есть 1 таблица (.xlsx) с данными, по которым нужно осуществить поиск в таблицах из п.1.
3. Ключом может выступать каталожный/чертежный номер товара.
Таблицы - это не данные, это хаос.
Чтобы что-то искать, нужна структура.
А эти Ёксели с тем же успехом можно просто перегнать в CSV и делать тупой текстовый поиск по той номенклатуре.
Наименования столбцов роли не играет.
Играет роль структура. Она должна быть одинаковая, т.е. одни и те же данные должны находится в одних и тех же местах в разных таблицах. Если это список (таблица), то он должен начинаться в определенном месте и колонки должны быть в строго заданном порядке.
Если структуру не привести к одному виду, то придется писать для каждого варианта размещения свою загрузку и т.п.
Или же должен быть некий формализованный алгоритм (который можно запрограммировать) по которому можно найти интересующие вас данные в каждой из этих тысяч таблиц.
Ексел поддерживает встроенные скрипты на VBA, так что поиск по другим таблицам можно реализовать скриптом.
Или настроить связи с другими таблицами. Но связи придется, видимо, делать вручную, а это несколько тысяч связей ...
res2001, доброго дня!
Спасибо!
Да, со структурированностью беда, а несколько тысяч связей - это как "костюм" на испанском)
Но всё равно спасибо, расшарю как такое вообще через VBA можно сделать хотя бы с несколькими таблицами.
Возможно с помощью Adodb и стандартного виндового провайдера Microsoft.ACE.OLEDB, но непонятно что получится в итоге, учитывая ваши неупорядоченные данные...
Не имеет смысла если время ограничено. Для файлов (XLS, XLSX) драйвер будет запускать новый экземпляр приложения для каждой книги.
Имеет смысл рассмотреть инструменты для парсинга XML.