0

我试图在 Ruby 中实现以下目标

  1. 打开一个 Excel

    require 'win32ole'
    
    excel = WIN32OLE.new('Excel.Application')
    worksheet  = application.Workbooks.Open("C:/testing.xlsx").Worksheets("Sheet1")
    excel.visible = true
    
  2. 手动对打开的 excel 进行必要的更改,我希望 ruby​​ 程序等到我进行这些更改。

  3. 完成必要的更改后,我使用 close(X) 按钮手动关闭该 excel。

  4. ruby 程序应该继续并继续执行下一步。

4

1 回答 1

1

首先,你在哪里

worksheet  = application.Workbooks.Open("C:/testing.xlsx").Worksheets("Sheet1")

我想你的意思是

worksheet  = excel.Workbooks.Open("C:/testing.xlsx").Worksheets("Sheet1")

无论如何,您可以检测在 Excel 实例中打开了多少工作簿,因此您可以这样做

while excel.Workbooks.count > 0 do 
    sleep(5)
end

并且您的脚本将坐在那里,无休止地轮询,直到工作簿关闭,然后将继续。

请注意,在用户关闭 Excel 实例后,它仍将不可见地运行;你可能想打电话

excel.Quit
excel.ole_free

清除它。

于 2013-04-12T15:56:37.417 回答