PowerQuery - папка Query для импорта новых файлов
Если я создал функцию PowerQuery, которая импортирует XML из папки, как в том же файле Excel я могу повторно использовать запрос, когда в папке есть новые файлы, чтобы включить данные только из этих новых файлов и добавить данные в текущую таблицу?
2 ответа
Если вы запустите Power Query с помощью From File / From Folder и перейдете к своей папке, вы увидите каждый файл, представленный в виде строки в таблице, со столбцами, такими как Дата изменения. Вы можете отфильтровать этот список, используя фильтры даты / времени на дату изменения или что-то более сложное, если необходимо (опубликуйте ваши конкретные требования, и я постараюсь направить вас в правильном направлении).
После того как вы отфильтровали запрос только по "новым файлам", вы можете передать столбец [Content] в свою функцию.
Наконец добавьте новый запрос на основе сохраненного вывода таблицы Excel из ранее существовавшего запроса вместе с запросом "новые файлы" выше, чтобы получить объединенный вывод. Новый запрос будет установлен на Load To / Only Create Connection.
Вы можете наблюдать за изменениями файлов в папке с помощью простого сценария vba, который использует WMI для опроса содержимого каталога каждые n секунд.
Что-то похожее на это...
Sub WatchDirectory(dir as string, every as integer)
Set wmisvc = GetObject("winmgmts:\\.\root\cimv2")
let query = "SELECT * FROM __InstanceOperationEvent " _
& "WITHIN " & every _
& " WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent='Win32_Directory.Name=" _
& Chr(34) & dir & Chr(34) & "'"
Set events = wmisvc.ExecNotificationQuery(query)
Do While True
Set event = events.NextEvent()
if event.Class = "__InstanceCreationEvent" then
....
end if
Loop
Для получения дополнительной информации о wmi см. https://sites.google.com/site/beyondexcel/project-updates/exposingsystemsecretswithvbaandwmiapi
Для получения дополнительной информации о просмотре файлов с помощью WMI см. https://blogs.technet.microsoft.com/heyscriptingguy/2005/04/04/how-can-i-monitor-for-different-types-of-events-with-just-one-script/