我正在编写一个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 ''
当我将单个文件名(而不是文件路径)作为参数传递时,不会出现此错误 - 为什么我在此处获取此错误?任何帮助将不胜感激。
答案 0 :(得分:1)
首先看你没有使用变量“file_name”而是使用符号:file_name。
file_array.each do |file_name|
wb1=xl.Workbooks.Open(file_name)
ws1=wb1.worksheets(1)
end