Мой старый сайт и зеркало-архив (осторожно, на сайте реклама!)
Главная ▶ BedvitXLL ▶ Загрузка данных из листов Excel
Часть библиотеки BedvitXLL
Beta version. Загрузка данных из рабочих листов Excel текущей книги или из файлов Excel в указанной папке (подпапках).
Что умеет:
>собирать данные для разных шаблонов с заголовками и данными
>объединять данные из разных шаблонов с заголовками и данными
>фильтровать данные по любому столбцу и с любым условием
>выгружать только необходимые столбцы для каждого шаблона
>загружать данные из файлов нужной папки и нужного уровня вложенных подпапок
>фильтровать файлы по имени
>фильтровать листы Excel по имени
>хранить любое количество настроенных шаблонов для дальнейшего использования
>выгружать итоговые данные на указанный лист Excel или в указанную сводную таблицу
Особенности:
Данные загружаются по заданным заголовкам и условиям (для отдельного сохранения можно настроить любое количество заголовков и условий).
Для каждого заголовка задаются отдельные условия.
Итоговая таблица (созданная таблица с данными) будет выгружена на новый лист(ы)..
Примеры использования:
1. Для листов текущей книги:
2. Для файлов в указанной папке:
3.Видео со звуком (с пояснениями).

Visual Basic
Sub TestXLLcmdSetSheetFormat()
Dim dialogMode, saveName, result
'0 или пусто – значение по умолчанию (то, что выбрано в меню)
'1 - Всё включено (рекомендуется).
'2 - Отключить пользовательские сообщения.
'3 - Отключить информацию в статус-баре Excel.
'4 - Отключить пользовательские сообщения + информацию в статус-баре Excel.
'5 - Отключить всё (в т.ч. сообщения об ошибках). Можно только кодом в командах меню, в первом параметре.
dialogMode = "1"
'Имя нужного пользовательского сохранения (сохраняется в пользовательской форме).
saveName = "Имя моего сохранения"
'Возвращает код ошибки: 0 - команда выполнена успешно и Error 2036, #NUM!, #ЧИСЛО! - если ошибка.
'Если второй аргумент пропущен - выводится пользовательская форма.
result = Application.RUN("XLLcmdDataLoadFromExcelSheets", dialogMode, saveName)
Debug.Print result
'примеры вариантов запуска:
'1.вывод пользовательской формы
Debug.Print Application.RUN("XLLcmdDataLoadFromExcelSheets", "1")
'2.отключение всех пользовательских сообщений, в.ч. ошибок (вывод ошибки только как результат выполнения функции)
Debug.Print Application.RUN("XLLcmdDataLoadFromExcelSheets", "5", saveName)
End Sub
Python
from win32com import client
input_xll = r'C:\Users\...\AppData\Roaming\Microsoft\AddIns\BedvitXLL64.xll'
input_file = r'C:\Users\...\Documents\Test.xlsb'
app = client.DispatchEx("Excel.Application")
app.Visible = True
app.RegisterXLL(input_xll)
workbook = app.Workbooks.Open(input_file)
app.Application.Run("XLLcmdDataLoadFromExcelSheets", "1", "Имя моего сохранения")
app.Application.Quit()
del app