• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby读写excel表格

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Ruby读写excel表格


Win32ole是访问Windows自动化的接口,可以让Ruby和Windows应用进行交互。
具体说来Win32ole可以操作Word,Excel,IE,Outlook等。

一、完整代码及效果图

test1.xlsx

test2.xlsx

二、具体代码

加载win32ole模块

#encoding=UTF-8
require ‘win32ole’
excel=WIN32OLE::new(“excel.Application”)

操作excel1:打开=》选择第一个sheet页=》读取表格内容=》关闭表格

work1=excel.workbooks.open(‘C:\Users\Administrator\Desktop\test\before.xlsx’)
excel.visible = true
worksheet=work1.Worksheets(1)
data=worksheet.Range(“A1:B#{worksheet.usedrange.rows.count}”).Value
work1.close()

操作excel2:新建=》另存为=》打开=》选择sheet1=》添加表头信息=》写入数据=》保存关闭

work2 =excel.workbooks.add
work2.saveas(‘C:\Users\Administrator\Desktop\test\test2.xlsx’) #另存为
begin
work2=excel.workbooks.open(‘C:\Users\Administrator\Desktop\test\test2.xlsx’)
worksheet=work2.Worksheets(1)
worksheet.Range(‘a1:b1’).Value= [‘序号’,’名称’]
line=2
data.each{|para|
puts line
worksheet.Range(“a#{line}”).Value= para[0]
worksheet.Range(“b#{line}”).Value= para[1]
line+=1
}
work2.save #保存
work2.close()
excel.quit
rescue Exception => e
excel.quit
puts e.message
end

三、其他操作表格的方法

对单元格的操作:

某个单元格: sheet.range(“a1”)

a1到b2的值: sheet.range(“a1”, “b2”) 或 sheet.range(“a1:b2”)

第一列: sheet.range(“a:a”)

第一行: sheet.range(“1:1”)

获得单元格的值:

range.text #读取值,返回为字符串格式,如果单元格内为数字,有可能会被截断小数点后的位数
sheet.range(“a1”).text

range.value #读取值,数字不会截断
sheet.range(“a1”).value

对单元格设置值
sheet.range(“a1”).value = 1.2345

调用宏定义
excel.Run(‘SortByNumber’)

迭代访问表格数据:

sheet.range(“a1:a5”).each{|cell| puts cell.value}

sheet.range(“b1:c5”).rows.each{|row| puts row.cells(1,1).value}



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby on rails_PHP vs Python vs Ruby on Rails:详细比较发布时间:2022-07-14
下一篇:
Linux下vim开发环境配置及配色(Ruby)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap