2014-03-12 61 views
0

是否有任何方法可以在不打開CSV文件的情況下將數據從csv文件檢索到Excel工作表中?我正在使用Windows PC。 Excel工作表和CSV文件位於一個文件夾中。我也有一個程序正在運行,它不斷更新CSV文件中的數據。如果我直接打開CSV文件,那麼程序將停止運行。所以我需要另一種解決方案來讀取CSV文件中的數據而不打開它。任何幫助,將不勝感激!如何從CSV文件中檢索數據而不打開它

+0

顯然你不能用文件沒有與文件工作的工作。你可以例如製作文件的副本並將其打開。沒有澄清什麼語言和技術是可用的,似乎不可能回答。 – keltar

+0

請參閱http://stackoverflow.com/questions/22957451/how-can-i-open-an-excel-file-read-write-for-s-s-users-and-readonly-for-others/22958386#22958386 - 您可以通過VBA以只讀方式打開csv文件 – brettdj

回答

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 
+0

感謝您的幫助,但它給我一個編譯器錯誤。 「用戶定義類型未定義」 – user3408837

+0

您需要設置對「Microsoft Scripting Runtime」的引用(從「工具/參考」菜單中) –

+0

好的,引用設置爲Microsoft Scripting Runtime,但仍然無法工作:( – user3408837

相關問題