在上篇的帖子里
老猪提到了一个简单的把Rails Model对象导出excel文件的插件
在Rails项目中导入excel 导出excel 实用rails解析excel
该插件易用性很好,就是像to_xml一样使用to_xls。然而,这个插件也有使用范围,比如,想要导出的excel有一些样式的时候就会多少有些问题。
那么下面的插件,在样式上稍微有些关注,使用上也同样吸取了to_xls的易用原则。
插件ekuseru
安装
Rails 3下
#Gemfile
gem "ekuseru"
bundle install
Rails 2下
cd vendor/plugins
git clone git://github.com/xinuc/ekuseru.git
git checkout remotes/origin/rails2 -b rails2
Controller中使用
class ProductsController < ApplicationController
respond_to :html, :xls
def index
@products = Product.all
respond_with @products
end
...
end
样式的处理
是通过在app/views/products目录的index.xls.eku文件进行修改实现,就如同模板一样
其中__filename代表excel文件,而处理和整理excel样式和数据的操作可以使用我们上文介绍的spreadsheet
rails导出excel插件 spreadsheet的标准使用
官网的介绍也不错
模板样式如下
# set the filename sent to the user with __filename variable
# this is optional, if you don't set it, the name will be like products.xls
__filename = "Products Catalog.xls"
# we get 'xls' variable which is a Workbook object
# then we can create some worksheet to work with, with create_worksheet method
sheet1 = xls.create_worksheet
# fill the [0, 0] cell
sheet1[0, 0] = "Products Catalog"
# Worksheet#row will return a Row object. We can modify it just like an Array.
# this code will return the second row and fill the cells.
sheet1.row(1).concat ["Name", "Price", "Stock", "Description"]
# we can access the instance variable we set in the controller, just like
# in erb template
@products.each_with_index do |p, i|
sheet1.update_row i+2, p.name, p.price, p.stock, p.description
end
# we can add some formatting using Spreadsheet::Format object
title_format = Spreadsheet::Format.new(:color => :blue, :weight => :bold, :size => 18)
sheet1.row(0).set_format(0, title_format)
bold = Spreadsheet::Format.new(:weight => :bold)
sheet1.row(1).default_format = bold
最后,导出的接口
<%= link_to 'Download as Excel', products_path(:format => :xls) %>
分享到:
相关推荐
在这个例子中,我们创建了一个新的Excel工作簿,添加了一个工作表,设置了表头,并填充了一些数据。最后,我们将工作簿写入到名为"output.xlsx"的文件中。 在实际开发中,可能还需要根据需求调整单元格样式、公式、...
这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git => ...
本篇将通过一个入门实例,深入探讨Rails的基本概念和核心特性。 首先,让我们了解一下Rails的主要组件: 1. **Model**:模型是应用程序中的数据层,它与数据库交互,负责业务逻辑和数据验证。在Rails中,我们通常...
Xport 表格数据导出到Excel,CSV等产品特点- column :name, group: :project 列宽- column :name, width: 10 列标题标题- column :name, header: "Full name" 列类型- column :name, type: :string 列样式- column :...
Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...
Ruby on Rails,简称RoR,是由David Heinemeier Hansson基于Ruby语言开发的一款开源Web应用程序框架,它遵循MVC(模型...学习过程中,你可以逐步理解Rails的优雅设计和强大功能,为成为一个熟练的Rails开发者奠定基础。
Rails Exporter 是一个用于 Rails 应用程序的开源工具,主要用于数据导出功能。源码分析将帮助我们深入理解其内部工作原理,以便更好地利用它来优化我们的应用。 一、Rails 框架基础 Rails 是 Ruby 语言的一个 web ...
这些类继承自`ActiveRecord::Base`,这是Rails框架提供的一个基类,它提供了与数据库交互的能力,如查询、创建、更新和删除记录。例如: ```ruby class User # 定义关联、验证和其他业务逻辑 end ``` **视图...
RailsAdmin 是一个基于Ruby on Rails的后台管理界面引擎,它允许开发者快速创建和管理应用程序的数据,而无需从零开始编写复杂的前端界面。 RailsAdmin 的核心功能包括: 1. 数据CRUD操作:RailsAdmin 提供了完整...
在本案例中,"Ruby-一个Rails引擎提供工作流程的基本基础设施"指的是一个专门为实现工作流程管理而设计的Rails引擎。 工作流程(Workflow)通常涉及到业务流程的自动化,包括任务分配、状态转换和审批流程等。...
Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
一个Rails应用程序,为DIY小型内容分发网络CDN提供支持
首先,Rails 3.1是Ruby on Rails框架的一个版本,它在2011年发布。这个版本引入了一些显著的改进,如Asset Pipeline(资产管道)和CoffeeScript支持。Asset Pipeline允许开发者更有效地管理和优化应用程序的前端资源...
`GoOnRails`是专门为Rails开发者设计的一个生成器,它允许在Rails应用中集成Go代码,创建Go API服务。这个工具简化了在Rails项目中使用Go进行后端处理的流程,使开发者可以利用Go的性能优势处理高并发请求,同时保留...