如何使用Ruby脚本打开多个Excel文件?

时间:2013-02-27 10:41:59

标签: ruby excel parsing

我正在编写一个ruby脚本来遍历包含要在 Microsoft 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:in' method_missing'    OLE错误代码:Microsoft Office中的800A03EC   Excel' D:\ Test_1 \ 1.xlsx'无法找到。检查拼写   文件名,并验证文件位置是否正确。

     

如果您尝试从最近使用的列表中打开文件   文件,确保文件尚未重命名,移动或删除   HR错误代码:0x80020009发生异常。来自Test4.rb:6:in   '阻止'来自Test4.rb:5:in'每个'来自Test4.rb:5:in   ''

当我将单个文件名(而不是文件路径)作为参数传递时,不会出现此错误 - 为什么我在此处获取此错误?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先看你没有使用变量“file_name”而是使用符号:file_name。

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