如何获取Excel中Power Query表格的刷新时间及历史记录?
解决Power Query历史刷新时间戳获取问题的可行方案
一、持久化存储刷新时间戳(从现在开始留存历史)
- 改造Power Query查询,每次刷新时将时间戳和关键数据标识写入独立的历史记录表(可存Excel工作表、CSV或小型数据库):
- 添加Power Query步骤,生成当前时间戳并与目标数据点信息合并,再追加到历史表:
let 当前刷新时间 = DateTime.LocalNow(), 新记录 = #table({"刷新时间戳", "目标数据点"}, {{当前刷新时间, "待确认数据点"}}), 历史记录表 = Excel.CurrentWorkbook(){[Name="刷新历史表"]}[Content], 更新后的历史表 = Table.Append(历史记录表, 新记录) in 更新后的历史表 - 将这个更新后的历史表加载回Excel,后续每次刷新都会自动追加新的时间戳记录,就能回溯之前的刷新时间。
- 添加Power Query步骤,生成当前时间戳并与目标数据点信息合并,再追加到历史表:
二、利用Office对象或文件属性获取替代时间
- 通过VBA获取查询最后刷新时间:如果用Excel承载Power Query,可编写简单VBA代码读取查询表的刷新时间,还能自动写入日志:
可以设置刷新后自动运行这个宏,每天留存刷新时间。Sub 记录刷新时间() Dim qt As QueryTable Set qt = ThisWorkbook.Worksheets("查询结果").ListObjects("你的查询表名").QueryTable ' 将刷新时间写入日志表 ThisWorkbook.Worksheets("刷新日志").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = qt.RefreshDate End Sub - 参考文件版本历史时间:测试刷新后文件自动保存的时间差——手动刷新一次后立刻查看版本历史的修改时间,如果两者间隔在1分钟内(开启自动保存的情况下),可以近似将版本历史的时间作为刷新时间戳的参考。
三、反向从数据库侧推断(若有隐藏途径)
- 再确认数据库是否存在系统审计日志、数据操作记录表,部分数据库会自动记录数据更新的时间戳,若能查到目标数据点的最后修改时间,可直接替代Power Query的刷新时间作为参考。
注意:对于之前的历史刷新时间,如果没有提前留存记录,Power Query本身不会存储该信息,无法直接获取,只能通过版本历史的20分钟间隔范围做近似推断。
内容的提问来源于stack exchange,提问作者Tas Man
相关产品推荐
相关产品推荐

