`
PBFox
  • 浏览: 67972 次
  • 性别: Icon_minigender_1
  • 来自: China
文章分类
社区版块
存档分类
最新评论

ruby on rails 使用 spreadsheet-excel 把数据导入到Excel表格中并且做为邮件附件发送出去

阅读更多
首先是安装 gem install spreadsheet-excel

其次 在script 文件夹中新建一个叫export的文件,里面代码如下:

#!/usr/bin/env ruby

require File.dirname(__FILE__) + '/../config/environment'
require "spreadsheet/excel"
include Spreadsheet
users=User.find_by_sql("select count(*) from users where created_at < '#{Time.now.strftime("%Y-%m-%d")}' and created_at > '#{1.day.ago.strftime("%Y-%m-%d")}'")

workbook = Excel.new("#{RAILS_ROOT}/public/reports/report_#{Time.now.strftime('%Y-%m-%d')}.xls")
worksheet = workbook.add_worksheet("Report of #{1.day.ago.strftime('%Y-%m-%d')}")

worksheet.write(0, 0, "#{1.day.ago.strftime('%Y-%m-%d')}")

worksheet.write(1, 0, "Daily Registered users")

worksheet.write(2, 0, "#{users[0].count.to_i}")

workbook.close
第三:执行ruby script/export. 到public文件夹中看一下,是不是多了一个excel表格。

有时我们需要将导出来的表格作为邮件附件发送出去。那么我们需要在上面的代码底部,加入这段:
Notifier.deliver_export
model代码如下:

class Notifier < ActionMailer::Base

def export
@recipients = "XXX@gmail.com" #收件人邮箱
#@cc = "XXX@sina.com","XXX@163.com" #抄送人邮箱
@subject = "#{Time.now.strftime('%Y-%m-%d')} data"
@body = ""
@data = ""
File.open("#{RAILS_ROOT}/public/reports/report_#{Time.now.strftime('%Y-%m-%d')}.xls", "rb").each { |fp| @data<<fp }
attachment :content_type =>"application/vnd.ms-excel",
:filename => "export_#{Time.now.strftime('%Y-%m-%d')}.xls" ,
:body => @data
end
end
这样就实现了使用spreadsheet-excel 把数据导入到Excel表格中,并且作为邮件附件发送给别人了。
分享到:
评论

相关推荐

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    Ruby on Rails入门经典-例子

    在Ruby on Rails中,"模型"负责处理数据和业务逻辑,"视图"负责展示数据,而"控制器"则作为模型和视图之间的桥梁,处理用户请求并调用模型方法来更新数据,再将结果传递给视图进行渲染。Rails提供了许多内置的便利...

    ruby on rails 101

    《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天课程的演示文稿和相关资料,覆盖了从安装到实际应用...

    Ruby on Rails Tutorial

    在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...

    Ruby on Rails 教程 - 201406

    本教程“Ruby on Rails 教程 - 201406”可能是针对2014年6月时的Rails版本,那时候Rails正处于3.x或4.x系列,虽然现在Rails已经发展到6.x版本,但基础概念和核心原则依然适用。 在Rails中,Model负责处理数据和业务...

    Ruby On Rails开发实例-源代码

    Ruby on Rails(简称RoR或Rails)是一种基于Ruby语言的开源Web应用框架,它遵循Model-View-Controller(MVC)架构模式,旨在使Web开发更简洁、高效。本实例将帮助你深入理解和实践Rails的开发流程。 首先,让我们从...

    Ruby on Rails中文指南

    在Ruby on Rails中文指南中,你将全面学习到如何利用这个强大的框架来构建动态的、数据驱动的Web应用程序。 首先,让我们深入理解Rails的核心概念: 1. **路由(Routes)**:Rails的路由系统是应用程序的导航蓝图...

    ruby on rails最新版

    Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。Rails以其“约定优于配置”(Convention over Configuration)...

    Ruby on Rails安装包全集(Linux)

    Ruby on Rails是一款基于Ruby语言的开源Web开发框架,它遵循MVC(模型-视图-控制器)架构模式,简化了Web应用的开发流程。在Linux环境下安装Ruby on Rails需要一系列的依赖包和步骤,本资源包提供了所需的所有组件,...

    Ruby on Rails入门经典代码

    通过学习和实践压缩包中的"Ruby on Rails入门经典代码",新手不仅可以了解Rails的基本概念,还能掌握实际项目中的应用技巧,逐步成长为一名熟练的Rails开发者。记得不断探索、实践和学习新的Rails知识,以适应不断...

    rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机.zip

    rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机 用于 Ruby on Rails 核心开发的虚拟机简介注意:这个虚拟机不是为 Rails 应用程序开发而设计的,只是为。 这个项目自动设置开发环境,以便在 Ruby on Rails ...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    Ruby on Rails实践

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。这个框架遵循“约定优于配置”(Convention over Configuration)的原则,致力于简化Web应用的开发流程,提高...

    Ruby On Rails中文教材(PDF)

    Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。Rails由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...

    ruby on rails api

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的代码和“约定优于配置”的原则。它主要用于构建数据驱动的Web应用,借助于MVC(Model-View-Controller)...

    ruby on rails 教程源码

    Ruby on Rails,简称Rails,是基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使开发过程更加简洁高效。这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的...

    ruby-on-rails-mon-db:使用MongoDB的Ruby on Rails

    Ruby on Rails与MongoDB 您可以在MongoDB的帮助下轻松... rails new ruby-on-rails-with-mongodb --skip-active-record从您的Gemfile中删除sqlite3(如果存在),将Mongoid添加到您的Gemfile中,然后运行“ bundle”。

Global site tag (gtag.js) - Google Analytics