你好友善的人:)
背景信息:
我有一个python脚本,它创建一个特殊的BI报告,从SQL服务器收集各种数据并进行必要的计算。输出将作为.CSV文件转储到公共驱动器上。
为了使输出更加用户友好,CSV会导入到具有各种格式的Excel电子表格中,以便于阅读。此电子表格由许多不同的用户使用,但从不同时使用。
问题是,最终用户将在电子表格中输入各种输入,然后在下次运行python脚本时将其考虑在内。一个例子可能是标记一行' x'表示已经处理了这个问题"这样它就不会出现在下一个输出中。
如果用户在没有运行底层脚本的情况下从csv重新导入数据,则会出现问题。这有效地删除了所有用户标记,使人们进行双重工作。
我知道这是一个可怕的设置,但它现在必须付诸实施。在证明概念证明之前,企业不愿意将其整合到ERP系统中。
问题:
在excel中是否可以实现数据导入限制,如果文件时间戳是最近的,比如说在最后一小时内,只能导入CSV文件?目前我只是使用标准的文本导入,它似乎没有这个功能。
我认为制作一个VBA宏按钮会更容易,但我很少在excel中工作,而且我对如何继续下去没有任何想法。
我想象一个按钮,用我自己的伪代码写下面的代码:
Press button():
if (datetime.now - time_stamp_csv_file) < 1 hour:
import file
else:
do nothing
如果任何人有任何解决方案可行,我将是一个快乐的人。
答案 0 :(得分:0)
我假设你已经有了导入文件的代码,只需要知道如何检查上次修改的时间戳。如果是这种情况,你应该可以使用这样的东西:
Sub ImportButton_Click()
Dim oFSO As Object
Dim oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile("C:\Test\Test.csv") 'Change this to your actual CSV file path
If Now() - oFile.DateLastModified < TimeValue("01:00:00") Then
'import file
End If
End Sub