无法使用Ruby&win32ole修改后保存Excel文件

使用http://ruby-doc.org/stdlib/libdoc/win32ole/rdoc/classes/WIN32OLE.html作为指南我写了以下内容:

require 'win32ole' excel = WIN32OLE.new('Excel.Application') excel.visible = false #Setting this is 'true' doesn't reveal anything workbook = excel.workbooks.open('C:\myspreadsheet.xlsx') worksheet = workbook.worksheets('sheet1') worksheet.Activate data = worksheet.UsedRange.Value p data.size #This works! - My spreadsheet has 3987 rows. p data[3932] #This works, too! - I can "see" row 3932. worksheet.Rows(3932).Insert #Insert a row above row 3932 data = worksheet.UsedRange.Value p data.size #Returns 3988! This would seem to indicate that I've successfully added a row since it was just 3987. workbook.saved = true #Save the workbook and quit. excel.ActiveWorkbook.Close(0) excel.Quit() 

当我打开Excel电子表格后,所有这一切都没有改变。 有任何想法吗?

Workbook对象的“ Saved属性设置为True不会导致工作簿被保存。 该属性用作标志来显示工作簿是否存在未保存的更改。 将其设置为True是防止Excelclosures时出现的“您希望保存…”对话框的简单方法。

要实际保存工作簿,您需要Workbook对象的Save方法。 这种方法不会返回任何东西,所以我会假设workbook.Save会做的伎俩(我没有Ruby的经验,不幸的是,所以不能100%肯定)