2013-02-27 74 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