2013-02-27 81 views
-1

我正在編寫一個ruby腳本來遍歷包含文件路徑列表的文件,以在Microsoft Excel中打開。我讀這樣的文件:如何使用Ruby腳本打開多個Excel文件?

file_names = IO.readlines('D:\TEST_1\file_names.txt') 

接下來,創建文件名稱的數組從解析文件的每一行(從而含有的文件路徑的陣列)。最後,我通過陣列用下面的代碼迴路,打開文件:

require 'win32ole' 
xl = WIN32OLE.new('Excel.Application') 
xl.Visible = 1 
file_names.each do |file_name| 
wb1=xl.Workbooks.Open(file_name) 
ws1=wb1.worksheets(1) 
end 

,首先調用解析file_names.txt產生這種例外,我有困難的理解:

Test4.rb :6:在'method_missing' OLE錯誤代碼:800A03EC在Microsoft Office中 無法找到Excel'D:\ Test_1 \ 1.xlsx'。檢查文件名稱的 的拼寫,並驗證文件位置是否正確。

,如果你試圖打開從你的列表中的文件最近使用的文件 ,確保該文件不會被重命名,移動或刪除 HR錯誤代碼:出現0x80020009異常。從Test4.rb:6: 從Test4.rb '在塊':5:從Test4.rb在 '各自':5: ''

當我通過此錯誤不會出現單個文件名(而不是文件路徑)作爲我的參數 - 那麼爲什麼我在這裏得到它?任何幫助將非常感激。

回答

1

首先看看您沒有使用變量「file_name」,而是使用了一個符號:file_name。

file_array.each do |file_name| 
    wb1=xl.Workbooks.Open(file_name) 
    ws1=wb1.worksheets(1) 
end 
+0

我已經改變了編輯,而我試圖解決問題,我試圖符號..even與變量我有同樣的問題... – user2114237 2013-02-27 12:42:39