0

現時点では、このようなExcelファイルを開いています

excel = WIN32OLE::new("excel.Application")
workbook = excel.Workbooks.Open('T:\\PointOfSale\\Projects\\Automated Testing\\MasterFile.xls')
worksheet = workbook.WorkSheets(1) # Get first workbook
site = worksheet.Range('A2').Value # Get the value at cell in worksheet.

それは問題ありませんが、スクリプトをサーバーに移動すると、パス/ファイルが見つからないというエラーメッセージが表示されます。だから私はテキストファイルを開くときのような一般的な方法を使用することにしました

excel = WIN32OLE::new("excel.Application")
workbook = excel.Workbooks.Open('../../../../Automated Testing/MasterFile.xls')
worksheet = workbook.WorkSheets(1) # Get first workbook
site = worksheet.Range('A2').Value # Get the value at cell in worksheet.

しかし、私はエラーメッセージを受け取ります:

T:/PointOfSale/Projects/Automated Testing / CSA / Branch_Test / Res Processing / CancelRes / Canc_BE.rb:23:in method_missing': (in OLE methodOpen':)(WIN32OLERuntimeError)OLEエラーコード:800A03EC in Microsoft Excel' ../../ .. /../Automated Testing /MasterFile.xls'が見つかりませんでした。ファイル名のスペルをチェックし、ファイルの場所が正しいことを確認してください。

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

何か考えはありますか?

4

2 に答える 2

1

次のようなスクリプトファイル自体への相対位置が必要です

path = "#{File.dirname(__FILE__)}/../../Automated Testing/MasterFile.xls"
workbook = excel.Workbooks.Open(path)

スクリプト ファイルがどこにあるかわからないので、/../ 参照の数を調整する必要があります。

于 2013-03-21T12:30:32.567 に答える
0

あなたも試すことができます、

path = "#{Dir.pwd}/Automated Testing/MasterFile.xls"
workbook = excel.WorkBooks.Open(path)

Dir.pwd現在のプロジェクト ディレクトリの絶対パスを出力します。

Dir.pwd
#> "/home/rails/projects/earthE/Blog"
于 2014-02-12T07:16:41.250 に答える