使用Ruby和win32ole修改后无法保存Excel文件
发布时间:2020-12-17 02:15:40 所属栏目:百科 来源:网络整理
导读:使用 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 anythingworkbook = e
使用
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是一种简单的方法,可以防止Excel关闭时出现“您是否要保存…”对话框.
若要实际保存工作簿,您需要Workbook对象的Save方法.这个方法没有返回任何东西,所以我认为workbook.Save会做的伎俩(我没有Ruby的经验,不幸的是,所以不能100%肯定) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |