Excel 数据导入有限制

Excel data import with restrictions

大家好:)

背景资料:

我有一个 python 脚本,它创建一个临时 BI 报告,从 SQL 服务器收集各种数据并进行必要的计算。输出作为 .CSV 文件转储到公共驱动器上。

为了使输出更加用户友好,CSV 被导入到具有各种格式的 excel 电子表格中,以使其更易于阅读。许多不同的用户都在使用此电子表格,但绝不会同时使用。

问题在于,最终用户将在电子表格中键入各种输入,然后在下一次 python 脚本为 运行 时考虑这些输入。一个示例可能是用 'x' 标记一行以表示 "this problem has already been dealt with",这样它就不会出现在下一个输出中。

如果用户在没有底层脚本 运行 的情况下从 csv 重新导入数据,就会出现问题。这有效地删除了所有使人们做双重工作的用户标记。

我知道这是一个可怕的设置,但它现在必须到期。在证明概念之前,公司不愿意将其集成到 ERP 系统中。

问题:

是否可以在 excel 中实施数据导入限制,规定只有文件时间戳是最新的(比如在过去一小时内)才能导入 CSV 文件?目前我只是在使用标准的文本导入,它似乎没有这个功能。

我想制作一个 VBA 宏按钮会更容易,但我很少在 excel 中工作,我对如何进行一无所知。

我正在想象一个按钮,它执行我自己编写的以下操作 pseudo_code:

 Press button():
     if (datetime.now - time_stamp_csv_file) < 1 hour:
        import file
     else:
         do nothing

如果有人有任何可行的解决方案,我将是一个快乐的人。

我假设您已经有了导入文件的代码,只需要知道如何检查最后修改的时间戳。如果是这样的话,你应该可以使用这样的东西:

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