如何从CSV文件中检索数据而不打开它

时间:2014-03-12 06:48:49

标签: excel csv

有没有办法在不打开CSV文件的情况下将数据从csv文件检索到Excel工作表?我正在使用Windows PC。 Excel工作表和CSV文件位于一个文件夹中。我还有一个正在运行的程序,它不断更新CSV文件中的数据。如果我直接打开CSV文件,程序将停止运行。因此,我需要一种替代解决方案来从CSV文件中读取数据而无需打开它。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望从CAV文件中读取而不将其锁定,以便您的其他进程可以继续写入。

这可以通过FileSystemObject

来实现
Sub Demo()
    Dim fso As FileSystemObject
    Dim txt As TextStream
    Dim s As String
    On Error GoTo EH

    Set fso = New FileSystemObject
    Set txt = fso.OpenTextFile("C:\Your\Path\YourFile.csv", ForReading)

打开文件ForReading不会锁定它,您的其他进程可以继续写入它。您现在可以使用

进行阅读
    Do While Not txt.AtEndOfStream
        s = txt.ReadLine
        Debug.Print s
    Loop

这将读到文件的当前结尾。如果在代码仍在执行其他操作时向文件添加了更多数据,则可以继续使用txt.ReadLine来获取更多数据。

要从头开始重读,请执行

    Set txt = fso.OpenTextFile("C:\Your\Path\YourFile.csv", ForReading)

试。

清理
EH:
    On Error Resume Next
    txt.Close
    Set txt = Nothing
    Set fso = Nothing
End Sub