PowerQuery – 文件夹查询导入新文件

如果我创build了一个从文件夹导入XML的PowerQuery函数,那么当文件夹中有新文件时,如何在同一个excel文件中重复使用查询,以仅包含来自这些新文件的数据并将数据附加到当前表中?

如果您使用“ 从文件/从文件夹”启动Power Query并浏览到您的文件夹,则会在表格中看到每个文件都显示为一行,并显示“ 修改date”等列。 您可以使用date/时间filter对date进行过滤,也可以根据需要添加更复杂的内容(发布您的具体要求,我会尽量引导您朝着正确的方向)。

将查询过滤到“新文件”后,可以将[内容]列传递到函数中。

最后追加一个基于已存在的查询中保存的Excel表格输出的新查询以及上面的“新文件”查询,以获得组合输出。 新查询将被设置为“ 加载到/仅创build连接”

您可以使用简单的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-刚刚一个脚本/