使用Spreadsheet操作Excel
2012-02-27 15:30
519 查看
在ruby中操作Excel电子表格的方法有很多,在windows下就可以使用win32ole库来调用系统本身的DOM进行操作,但如果离开windows环境,我们就需要使用其它的一些gem包了,如Spreadsheet。
首安装Spreadsheet,使用命令gem install Spreadsheet:
![](http://hi.csdn.net/attachment/201202/27/0_13303272496WYB.gif)
如果网络不好,就要先将spreadsheet包下载于本地,注意上面的信息可知,spreadsheet包依赖于ruby-ole包,故你在手动下载安装时不要忘了先安装它。
下面帖出代码:
读:
写:
效果图:
![](http://hi.csdn.net/attachment/201202/27/0_13303276728aa5.gif)
在使用SpreadSheet这个包时,有点遗憾的是,它不能正真的实现单元格合并。
今天看了yingjie_xiao的方法实现合并,不知行不行,附上方法,出处http://blog.csdn.net/yingjie_xiao/article/details/8557007:
sheet1.
只要把填写起始行/列,结束行/列填写就可以,很高效的解决了合并单元格的麻烦.
参考博客:
rails导出excel插件 spreadsheet的标准使用
Ruby Spreadsheet 合并单元格方法
Getting Started with Spreadsheet
首安装Spreadsheet,使用命令gem install Spreadsheet:
![](http://hi.csdn.net/attachment/201202/27/0_13303272496WYB.gif)
如果网络不好,就要先将spreadsheet包下载于本地,注意上面的信息可知,spreadsheet包依赖于ruby-ole包,故你在手动下载安装时不要忘了先安装它。
下面帖出代码:
读:
require "rubygems" require "spreadsheet" Spreadsheet.client_encoding = "UTF-8" book = Spreadsheet.open("test.xls") # 得到第一个表格 sheet1 = book.worksheet(0) test_file = File.open("test.txt", "w") sheet1.each do |row| row.collect do |value| test_file.write("#{value}\t") end test_file.write("\r\n") end test_file.close()
写:
# 引入spreadsheet插件 require "rubygems" require "spreadsheet" # 声明Spreadsheet处理Excel文件组时的编码 Spreadsheet.client_encoding = "UTF-8" # 创建一个Spreadsheet对象,它相当于Excel文件 book = Spreadsheet::Workbook.new # 创建Excel文件中的一个表格,并命名为 "Test Excel" sheet1 = book.create_worksheet :name => "Test Excel" # 设置一个Excel文件的格式 default_format = Spreadsheet::Format.new(:weight => :bold, :size => 14, :align => :merge, :color=>"red", :border=>1, :border_color=>"black", :pattern => 1 , :pattern_fg_color => "yellow" ) data = "测试标题" # 指定一个在表格中的第一行对象 test_row = sheet1.row(0) # 为第一行的前5个列指定格式 5.times do |i| test_row.set_format(i, default_format) end # 为第一行的第一列指定值 test_row[0] = data # 将创建的Spreadsheet对象写入文件,形成电子表格 book.write 'book2.xls'
效果图:
![](http://hi.csdn.net/attachment/201202/27/0_13303276728aa5.gif)
在使用SpreadSheet这个包时,有点遗憾的是,它不能正真的实现单元格合并。
今天看了yingjie_xiao的方法实现合并,不知行不行,附上方法,出处http://blog.csdn.net/yingjie_xiao/article/details/8557007:
sheet1.
merge_cells(start_row, start_col, end_row, end_col)
只要把填写起始行/列,结束行/列填写就可以,很高效的解决了合并单元格的麻烦.
参考博客:
rails导出excel插件 spreadsheet的标准使用
Ruby Spreadsheet 合并单元格方法
Getting Started with Spreadsheet
相关文章推荐
- 屁孩博客:使用POI操作Excel:Sheet拷贝
- 使用POI操作Excel:Sheet拷贝
- C#使用Gembox.SpreadSheet向Excel写入数据及图表的实例
- C# DevExpress spreadsheetControl的基本使用方法 Excel插件
- CSpreadSheet类学习(操作EXCEL)
- 使用owc的spreadsheet导出Excel文件时,格式丢失的解决方法
- 如何在Excel 2007以上版本使用spreadsheet控件?
- rails导出excel插件 spreadsheet的标准使用
- excel操作之Add Data to a Spreadsheet Cell
- 使用GemBox.Spreadsheet控件操作Excel文件
- rails导出excel插件 spreadsheet的标准使用
- [C#]使用Gembox.SpreadSheet向Excel写入数据及图表
- 使用perl Spreadsheet::ParseExcel 来解析xml
- 使用perl Spreadsheet::ParseExcel 来解析xml
- excel操作之Add Data to a Spreadsheet Cell
- php 5.4 使用 Spreadsheet_Excel_Writer 导出excel
- BasicExcel & CSpreadSheet 使用感受
- PHP Excel类Spreadsheet_Excel_Writer简单使用
- CSpreadSheet类学习(操作EXCEL)
- 通过GemBox.Spreadsheet完美操作Excel