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

PowerQuery - Folder Query import new files

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

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

如果您使用 从文件/从文件夹 启动 Power Query 并浏览到您的文件夹,您将看到每个文件在 table 中显示为一行,包含 修改日期 等列。您可以在修改日期上使用 Date/Time 过滤器或在必要时使用更复杂的过滤器来过滤该列表(post 您的具体要求,我会尽力引导您朝着正确的方向前进)。

将查询筛选为 "new files" 后,您可以将 [Content] 列传递到函数中。

最后,根据保存的 Excel Table 现有查询的输出和上面的 "new files" 查询追加一个新查询,以获得组合输出。新查询将设置为 加载到/仅创建连接