-1

Microsoft Excelで開くファイル パスのリストを含むファイルを反復処理する ruby​​ スクリプトの作成に取り組んでいます。私は次のようにファイルを読みました:

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

parse への最初の呼び出しでfile_names.txtこの例外が生成されますが、これを理解するのは困難です。

Test4.rb:6:in 'method_missing' OLE エラー コード:800A03EC in Microsoft Office Excel 'D:\Test_1\1.xlsx' が見つかりませんでした。ファイル名のスペルを確認し、ファイルの場所が正しいことを確認します。

最近使用したファイルのリストからファイルを開こうとしている場合は、ファイルが名前変更、移動、または削除されていないことを確認してください HR エラー コード: 0x80020009 例外が発生しました。from Test4.rb:6:in 'block in' from Test4.rb:5:in 'each' from Test4.rb:5:in ''

このエラーは、(ファイル パスではなく) 単一のファイル名をパラメーターとして渡すと表示されません。どんな助けでも大歓迎です。

4

1 に答える 1

1

一見すると、変数「file_name」ではなく、シンボル :file_name を使用しています。

file_array.each do |file_name|
  wb1=xl.Workbooks.Open(file_name)
  ws1=wb1.worksheets(1)
end
于 2013-02-27T11:00:07.470 に答える