- 浏览: 2079024 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
update (2011/4/29) :
Rails 3.0.7 ruby 1.9.2 spreadsheet 0.6.5.4可以用
update(2010/8/29):
一年之后本文出了个后继篇,是关于Rails的excel导入,导出的一些插件介绍
诸位看官,如果用到请赏脸移步参考
在Rails项目中导入excel 导出excel 实用rails解析excel
——————————老猪的小分割———————————
本文是对spreadsheet基本知识的介绍,该插件可以读取和生成excel文件
如果,你想看更复杂的例子, 请点击这里
如果,你想看更简单的解析excel文件的例子,请点击这里
如果,你想下载spreadsheet的gem包,请点击这里
如果,你想了解windows下操作excel的特有方法,使用ruby来操作excel文件 Win32ole
如果,你想考虑另外的插件roo来操作excel,请点击这里
如果,你还想考虑rails的一个插件railsxls,请点击这里
1. 使用Spreadsheet
本向导将介绍Spreadsheets的基本使用,看完本文您将掌握最基本的使用rails读写excel。
2. 读取excel文件
首先,保证加载库文件,否则功能没法用
excel工作文件(Worksheets)通常有多种编码格式,这里需要手动表明格式如下:
打开一个excel的文件
这时,我们已经可以对excel文件的worksheets进行读写
或者,增加标识的进行读写:
那么,现在我们可以使用迭代来遍历所有的行列,Worksheet.each自身会跳过空值。
或者,手动跳过前面的空值
或者,通过顺序号访问,
读取行中一个单元格的值
-> 这里将返回一个String字符串,Float或者整形(Integer)或者Formula或者Link或者Date或者DateTime。甚至nil值,如果表单值本来就是空值。
3. 生成excel文件
如果,你想生成一个excel文件,那么首先,就像写文件一个先加载spreadsheet类库,然后,指定编码接着,就可以创建一个Workbook了
在workbook基础上创建Worksheet表单
当然,你也可以用如下方式创建表单:
那么,这时我们可以采用如下方式加载数据到表单Worksheet#[]=,
Worksheet#update_row, 或者直接给一个指定单元格复制
对于格式的处理,可以如下:
最后,保存excel文件
4. 修改已经存在的excel文件
对于修改excel文件而言是有限制的。下面是
可以进行的修改操作:
* 添加、修改和删除单元格
* 可以在预定义数据的情况下添加数据
不可以进行的操作:
* Spreadsheet 只能对BIFF8数据(Dxcel97以后版本的excel)进行写操作
* Spreadsheet 不能修改以百分比定义的格式.
* 虽然理论上是可行的,但是非常不建议把修改后的文件保存回原文件。
修改演示:
5. 如何处理时间
Excel 并没有单独的日期标识类型,依靠浮点类型格式显示
如果,日起识别失败,就需要自己解码:
6. 更多关于文档的编码格式
设置多种编码格式:
7. 兼容性问题
Spreadsheet是设计来代替ParseExcel 和Spreadsheet::Excel,但是他们还是兼容的。例如你的工程理还有parseexcel那么,你可以这样写
Rails 3.0.7 ruby 1.9.2 spreadsheet 0.6.5.4可以用
update(2010/8/29):
一年之后本文出了个后继篇,是关于Rails的excel导入,导出的一些插件介绍
诸位看官,如果用到请赏脸移步参考
在Rails项目中导入excel 导出excel 实用rails解析excel
——————————老猪的小分割———————————
本文是对spreadsheet基本知识的介绍,该插件可以读取和生成excel文件
如果,你想看更复杂的例子, 请点击这里
如果,你想看更简单的解析excel文件的例子,请点击这里
如果,你想下载spreadsheet的gem包,请点击这里
如果,你想了解windows下操作excel的特有方法,使用ruby来操作excel文件 Win32ole
如果,你想考虑另外的插件roo来操作excel,请点击这里
如果,你还想考虑rails的一个插件railsxls,请点击这里
1. 使用Spreadsheet
本向导将介绍Spreadsheets的基本使用,看完本文您将掌握最基本的使用rails读写excel。
2. 读取excel文件
首先,保证加载库文件,否则功能没法用
require "spreadsheet"
excel工作文件(Worksheets)通常有多种编码格式,这里需要手动表明格式如下:
Spreadsheet.client_encoding = "UTF-8"
打开一个excel的文件
book = Spreadsheet.open "/path/to/an/excel-file.xls"
这时,我们已经可以对excel文件的worksheets进行读写
book.worksheets
或者,增加标识的进行读写:
sheet1 = book.worksheet 0 sheet2 = Book.worksheet "Sheet1"
那么,现在我们可以使用迭代来遍历所有的行列,Worksheet.each自身会跳过空值。
sheet1.each do |row| # do something interesting with a row end
或者,手动跳过前面的空值
sheet2.each 2 do |row| # do something interesting with a row end
或者,通过顺序号访问,
row = sheet1.row(3)
读取行中一个单元格的值
row[0]
-> 这里将返回一个String字符串,Float或者整形(Integer)或者Formula或者Link或者Date或者DateTime。甚至nil值,如果表单值本来就是空值。
3. 生成excel文件
如果,你想生成一个excel文件,那么首先,就像写文件一个先加载spreadsheet类库,然后,指定编码接着,就可以创建一个Workbook了
book = Spreadsheet::Workbook.new
在workbook基础上创建Worksheet表单
sheet1 = book.create_worksheet
当然,你也可以用如下方式创建表单:
sheet2 = book.create_worksheet :name => 'My Second Worksheet' sheet1.name = 'My First Worksheet'
那么,这时我们可以采用如下方式加载数据到表单Worksheet#[]=,
Worksheet#update_row, 或者直接给一个指定单元格复制
sheet1.row(0).concat %w{Name Country Acknowlegement} sheet1[1,0] = 'Japan' row = sheet1.row(1) row.push 'Creator of Ruby' row.unshift 'Yukihiro Matsumoto' sheet1.row(2).replace [ 'Daniel J. Berger', 'U.S.A.', 'Author of original code for Spreadsheet::Excel' ] sheet1.row(3).push 'Charles Lowe', 'Author of the ruby-ole Library' sheet1.row(3).insert 1, 'Unknown' sheet1.update_row 4, 'Hannes Wyss', 'Switzerland', 'Author'
对于格式的处理,可以如下:
sheet1.row(0).height = 18 format = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 18 sheet1.row(0).default_format = format bold = Spreadsheet::Format.new :weight => :bold 4.times do |x| sheet1.row(x + 1).set_format(0, bold) end
最后,保存excel文件
book.write '/path/to/output/excel-file.xls'
4. 修改已经存在的excel文件
对于修改excel文件而言是有限制的。下面是
可以进行的修改操作:
* 添加、修改和删除单元格
* 可以在预定义数据的情况下添加数据
不可以进行的操作:
* Spreadsheet 只能对BIFF8数据(Dxcel97以后版本的excel)进行写操作
* Spreadsheet 不能修改以百分比定义的格式.
* 虽然理论上是可行的,但是非常不建议把修改后的文件保存回原文件。
修改演示:
book = Spreadsheet.open '/path/to/an/excel-file.xls' sheet = book.worksheet 0 sheet.each do |row| row[0] *= 2 end book.write '/path/to/output/excel-file.xls'
5. 如何处理时间
Excel 并没有单独的日期标识类型,依靠浮点类型格式显示
row.format(3).number_format
如果,日起识别失败,就需要自己解码:
row.date(3) row.datetime(3) row[4] = Date.new 1975, 8, 21 # -> 日起类型: 'M/D/YY' book.add_format Format.new(:number_format => 'DD.MM.YYYY hh:mm:ss') row[5] = DateTime.new 2008, 10, 12, 11, 59 # -> 指定时间类型: 'DD.MM.YYYY hh:mm:ss' row.set_format 6, Format.new(:number_format => 'D-MMM-YYYY') row[6] = Time.new 2008, 10, 12 # -> the Format of cell 6 is left unchanged.
6. 更多关于文档的编码格式
设置多种编码格式:
Spreadsheet.client_encoding = 'LATIN1//TRANSLIT//IGNORE'
7. 兼容性问题
Spreadsheet是设计来代替ParseExcel 和Spreadsheet::Excel,但是他们还是兼容的。例如你的工程理还有parseexcel那么,你可以这样写
require 'parseexcel' require 'parseexcel/parseexcel' require 'parseexcel/parser'
评论
4 楼
sdoliwei11
2013-11-07
可以用?为什么我用不了
3 楼
zhanghong_bean
2011-12-27
学习学习,我们现在的项目里使用spreadsheet,但发现在写excel那一步特别慢,与写csv差的不是一个数量级
2 楼
dadadada2x
2011-08-18
经过gridfs存储的文件如何用spreadsheet提取呢?
1 楼
chengren
2010-01-03
不错,学习了。
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 939heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3261reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3302alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1476问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1388这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1354以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1911首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2280这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2270开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1246class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8153TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2031刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1502这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1950面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17228git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2741简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 951第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1700开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12965Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2128又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git => ...
"poi导出excel需要的jar"指的是在使用Apache POI进行Excel导出时,你需要包含特定的JAR依赖文件。 首先,要实现POI导出Excel的功能,你需要下载Apache POI相关的JAR文件。这些文件通常包括以下核心组件: 1. **poi...
to_spreadsheet to_spreadsheet允许您的Rails 3+应用程序使用现有的slim / haml / erb / etc视图呈现Excel文件。安装将其添加到您的Gemfile中: gem 'to_spreadsheet'用法在控制器中: # my_thingies_controller....
使用Edge Rails的插件,如CRUD Generator 2,可以让你提前体验并利用到Rails的前沿技术。 **2. CRUD Generator 2的核心功能** CRUD Generator 2的核心是自动生成模型、控制器、视图以及相关的数据库迁移文件。它能...
开发者可以使用`rapt search`命令查找特定功能的插件,例如在Rails项目中添加日历功能的插件。 Rails插件极大地丰富了Rails的功能,使得开发者能够根据项目需求定制和扩展框架,提高了开发效率和代码复用性。通过...
rails.vim提供了常用的一些命令,可以帮助开发,例如:Rgenerate, Rake, Rfind,RTview等,很方便,也很实用。 安装方法: 拷贝 autoload/rails.vim, plugin/rails.vim, 和 doc/rails.txt 到 ~/.vim 目录. ...
为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在Rails应用中轻松地对数据进行分页显示,提高用户体验并减轻服务器压力。 **1. will_paginate插件介绍** `will_paginate`...
6. **Rakefile和init.rb**: Rakefile用于定义任务,如安装或更新插件,而init.rb是Rails初始化脚本,负责加载插件。 7. **版本控制(.svn)**: 这个文件可能表示插件曾使用Subversion作为版本控制系统。现代项目更...
Xport 表格数据导出到Excel,CSV等产品特点- column :name, group: :project 列宽- column :name, width: 10 列标题标题- column :name, header: "Full name" 列类型- column :name, type: :string 列样式- column :...
试算表Rails应用的电子表格view_component安装将此行添加到您的应用程序的Gemfile中: gem 'spreadsheet' , github : 'magma-labs/spreadsheet' 然后执行:$ bundle 或将其自己安装为:$ gem install spreadsheet ...
**Ruby on Rails 开发环境构建:Eclipse与RadRails 插件详解** 在现代软件开发领域,Ruby on Rails(简称Rails)作为一个强大的Web应用程序框架,因其简洁、高效的特性深受开发者喜爱。而Eclipse,作为一款功能强大...
ruby on rails for eclipse开发插件
标题“Rails插件收集”指的是一个关于...总的来说,Rails插件收集是一个关于Rails开发中插件使用和管理的综合资源,包含了安装、使用、源码分析以及工具介绍等多个方面,对于Rails开发者来说是非常有价值的学习资料。
Rails 2.3.2 是一个古老的 Ruby on Rails 框架版本,它在 Ruby 社区中曾经广泛使用。Gem 是 Ruby 的包管理器,用于安装和管理各种库和框架,包括 Rails。如果你无法通过网络升级或安装 Rails,可以采用本地安装包的...
总的来说,Ruby on Rails 中的多线程插件是提高应用程序性能的重要手段,正确使用可以有效提升用户体验,但同时也需要注意多线程带来的问题,如资源竞争、同步和错误处理等挑战。通过持续学习和实践,开发者可以更好...
thinking-sphinx, activerecord/Rails的Sphinx插件 ThinkingThinking是将ActiveRecord连接到Sphinx完整文本搜索工具的库,并与 Rails ( 但也适用于其他 ruby 网络框架) 紧密集成。 当前版本为 v3.4.2.插件升级升级时...
在Rails中,可以使用`rails-auto_complete`这样的插件来实现。例如,`rails-auto_complete-7b18f05`可能是该插件的一个特定版本。这个插件通常通过AJAX与服务器进行交互,根据用户输入动态获取并显示匹配数据。它...
本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...