加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用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%肯定)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读