`

另外一个Rails导出excel的例子

阅读更多

在上篇的帖子里老猪提到了一个简单的把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) %>




3
0
分享到:
评论

相关推荐

    poi导出excel需要的jar

    在这个例子中,我们创建了一个新的Excel工作簿,添加了一个工作表,设置了表头,并填充了一些数据。最后,我们将工作簿写入到名为"output.xlsx"的文件中。 在实际开发中,可能还需要根据需求调整单元格样式、公式、...

    to_xls-rails:将Rails ActiveRecord或Mongid数据导出到Excel文件

    这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git =&gt; ...

    Ruby on Rails入门例子

    本篇将通过一个入门实例,深入探讨Rails的基本概念和核心特性。 首先,让我们了解一下Rails的主要组件: 1. **Model**:模型是应用程序中的数据层,它与数据库交互,负责业务逻辑和数据验证。在Rails中,我们通常...

    xport:将Rails模型导出到XLSX,CSV

    Xport 表格数据导出到Excel,CSV等产品特点- column :name, group: :project 列宽- column :name, width: 10 列标题标题- column :name, header: "Full name" 列类型- column :name, type: :string 列样式- column :...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

    Ruby on Rails入门经典-例子

    Ruby on Rails,简称RoR,是由David Heinemeier Hansson基于Ruby语言开发的一款开源Web应用程序框架,它遵循MVC(模型...学习过程中,你可以逐步理解Rails的优雅设计和强大功能,为成为一个熟练的Rails开发者奠定基础。

    rails-exporter-源码.rar

    Rails Exporter 是一个用于 Rails 应用程序的开源工具,主要用于数据导出功能。源码分析将帮助我们深入理解其内部工作原理,以便更好地利用它来优化我们的应用。 一、Rails 框架基础 Rails 是 Ruby 语言的一个 web ...

    ruby 例子 模仿rails 的 mvc

    这些类继承自`ActiveRecord::Base`,这是Rails框架提供的一个基类,它提供了与数据库交互的能力,如查询、创建、更新和删除记录。例如: ```ruby class User # 定义关联、验证和其他业务逻辑 end ``` **视图...

    Ruby-RailsAdmin一个Rails引擎提供了一个易于使用的界面来管理您的数据

    RailsAdmin 是一个基于Ruby on Rails的后台管理界面引擎,它允许开发者快速创建和管理应用程序的数据,而无需从零开始编写复杂的前端界面。 RailsAdmin 的核心功能包括: 1. 数据CRUD操作:RailsAdmin 提供了完整...

    Ruby-一个Rails引擎提供工作流程的基本基础设施

    在本案例中,"Ruby-一个Rails引擎提供工作流程的基本基础设施"指的是一个专门为实现工作流程管理而设计的Rails引擎。 工作流程(Workflow)通常涉及到业务流程的自动化,包括任务分配、状态转换和审批流程等。...

    Rails101_by_rails4.0

    Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Ruby-一个Rails应用程序为DIY小型内容分发网络CDN提供支持

    一个Rails应用程序,为DIY小型内容分发网络CDN提供支持

    关于rails 3.1 cucumber-rails 1.2.0

    首先,Rails 3.1是Ruby on Rails框架的一个版本,它在2011年发布。这个版本引入了一些显著的改进,如Asset Pipeline(资产管道)和CoffeeScript支持。Asset Pipeline允许开发者更有效地管理和优化应用程序的前端资源...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    `GoOnRails`是专门为Rails开发者设计的一个生成器,它允许在Rails应用中集成Go代码,创建Go API服务。这个工具简化了在Rails项目中使用Go进行后端处理的流程,使开发者可以利用Go的性能优势处理高并发请求,同时保留...

Global site tag (gtag.js) - Google Analytics