`

Faster CSV:做報表的好幫手

阅读更多
FasterCSV 是 Ruby 當中一個處理 CSV 檔案的 lib。顧名思義,他做 CSV 處理速度比 Ruby standard Lib 快。這裡介紹怎麼連結 Active Record 產生報表,並且每天寄一份 Email 報表給管理者。本篇參考自How to email reports from Rails



安裝
gem i fastercsv
即安裝完成,要在程式使用請先 require
require 'rubygems'
require 'faster_csv'
跟 Active Record 連結,並且產生報表

我們假設我們想要把 User 資料庫裡面的東西作成 CSV 檔案
FasterCSV.open("report.csv", "w") do |csv|
fields = User.content_columns.inject([]) do |result,column|
result << column.name
end
csv << fields.map {|f| f.titleize }
User.find_all.each do |row|
csv << fields.map {|f| row[f] }
end
end
其中 csv << 代表塞入一次塞一行,如果還沒做好之前,先用一個 Array 來暫存。最後在用
csv << temp_array 來塞入比較好。

如果寄 Email 報表

我就直接用How to email reports from Rails 的範例。
class Notifier < ActionMailer::Base
def sales_for_yesterday
require 'FasterCSV'

@from = 'someone@example.com'
@recipients = 'someone@example.com'
@sent_on = Time.now
@yesterday = 1.day.ago
@body = { :yesterday => @yesterday }
@subject = "Sales Report"

attachment :content_type => "text/csv", :filename => "sales_#{@yesterday.to_date}.csv" do |a|
a.body = FasterCSV.generate do |csv|
csv < < (fields = ["artist", "product", "variant", "unit price", "qty sold", "total"]).map {|f| f.titleize }
Report.sales_for_date(@yesterday).each do |row|
csv << fields.map {|f| row[f] }
end
end
end
end
end
其中這段是代表附帶一份檔案,並且 a.body assign 給剛剛產生的 CSV Object 即可
attachment :content_type => "text/csv", :filename => "file_name.csv" do |a|
a.body = FasterCSV.generate do |csv|
# 填入剛剛的 code 即可
end
end

至於中間,就填入剛剛寫的跟 Active Record 連結的 code 即可。

至於要每天寄一份 Email 報表,請用 Crontab + Rails 裡面的 Runner 即可。
分享到:
评论

相关推荐

    faster_csv:FasterCSV 是 CSV,但更快、更小、更干净

    FasterCSV 旨在替代 Ruby 的标准 CSV 库。 它旨在解决该库用户的担忧,它具有三个主要目标: 比 CSV 快得多,同时保持纯 Ruby 库。 使用更小且更易于维护的代码库。 (FasterCSV 现在更大了,但功能相当丰富。...

    motion-csv:RubyMotion 友好的 CSV 解析器 gem

    这是 Mason 的一个 RubyMotion 友好的 faster-csv 端口: ://rubygems.org/gems/fasterer-csv 安装 将此行添加到应用程序的 Gemfile 中: gem 'motion-csv' 然后执行: $ bundle 或者自己安装: $ gem ...

    coding faster:getting more productive with microsoft visual studio

    本资料将深入探讨如何更好地利用Visual Studio(包括2005, 2008, 2010版本)提升编程效率。 1. **界面和定制** - VS提供了丰富的自定义选项,允许用户根据个人喜好和工作流调整布局和快捷键设置,提高工作效率。 ...

    FasterRCNN:Faster RCNN的基本实现

    **Faster R-CNN:深度学习中的目标检测技术** Faster R-CNN(快速区域卷积神经网络)是由Ross Girshick、Kaiming He、Shaoqing Ren和Jian Sun于2015年提出的,是计算机视觉领域中目标检测技术的重要里程碑。它在R-...

    Making Facebook faster: Frontend performance engineering

    Making Facebook faster: Frontend performance engineering Velocity 2009 Jun 24, 2009 San Jose, CA

    Keras-FasterRCNN:Faster R-CNN的keras实现

    Keras-FasterRCNN 更快的R-CNN的Keras实现:通过区域提议网络实现实时目标检测。 克隆自更新: 支持inception_resnet_v2 要在keras.application中将inception_resnet_v2用作特征提取器,请使用transfer / export_...

    Faster and Better A Machine Learning Approach to Corner Detection.pdf

    在他们的论文《Faster and Better: A Machine Learning Approach to Corner Detection》中,作者详细描述了该算法的改进之处。 FAST-ER算法的三大改进点如下: 1. 首先,作者提出了一种新的启发式特征检测方法,并...

    Even Faster Web Sites: Performance Best Practices for Web Developers (PDF 电子书)

    在《高性能网站建设进阶指南》(Even Faster Web Sites)这本书中,Souders与另外8位专家级特约作者提供了提升网站性能的最佳实践和实用建议,主要包括以下3个关键领域:  • JavaScript——你将获得忠告:理解Ajax...

    高效耳语模型:Faster-Whisper

    Faster-Whisper使用CTranslate2重新实现了OpenAI的Whisper模型,CTranslate2是Transformer模型的快速推理引擎。这种实现比openai/whisper在使用更少内存的情况下达到相同精度的4倍。对于需要高效Transformer模型推理...

    matlab人头检测的代码-FasterRCNN:更快的RCNN

    此实现的深层模型基于我的好朋友和合作者创建的端到端TensorFlow应用程序的简约框架。 一探究竟。 (通常定期将更改引入Dan的文档中)是此tf-Faster-RCNN存储库的子模块。 内容 要求:软件 Ubuntu 16:我尚未在任何...

    faster_whisper-0.10.0-py3-none-any.whl.zip

    标题 "faster_whisper-0.10.0-py3-none-any.whl.zip" 提供的信息表明,这是一个包含Python库"Faster Whisper"的压缩包,版本为0.10.0。"whl"是Python中的 Wheel 文件格式,它是预编译的Python包,用于简化安装过程,...

    已经训练好tensorflow的Faster RCNN模型下载.7z

    标题中的"已经训练好tensorflow的Faster RCNN模型下载"意味着这个压缩包包含了一个在TensorFlow环境中训练完成的Faster RCNN模型,用户可以下载后直接用于目标检测任务,而无需自己花费大量时间和计算资源来训练模型...

    Faster RCNN源代码

    **Faster R-CNN 源代码解析** Faster R-CNN(快速区域卷积神经网络)是由Ross Girshick等人在2015年提出的一种目标检测算法,它结合了R-CNN(区域卷积神经网络)和SPP-net(空间金字塔池化网络)的优点,实现了...

    从头开始训练Faster R-CNN-python源码.zip

    《从头开始训练Faster R-CNN:Python源码解析》 Faster R-CNN(快速区域卷积神经网络)是计算机视觉领域中用于目标检测的著名算法,由Ross Girshick、Kaiming He、Shaoqing Ren和Jian Sun在2015年提出。它在R-CNN...

    FasterRCNN视频讲解-1.2 FasterRCNN 代码实现

    这个视频教程将详细解析Faster R-CNN的工作原理和代码实现,以中文讲解的方式帮助观众更好地理解和应用这一技术。 Faster R-CNN的核心改进在于引入了区域提议网络(Region Proposal Network, RPN),这使得目标检测...

    深度学习+论文详解:FasterR-CNN原理与优势 深度学习原理.pdf

    深度学习+论文详解:Faster R-CNN原理与优势 深度学习在计算机视觉领域中的应用日益广泛,目标检测算法作为其中的一部分,Faster R-CNN 正是深度学习在目标检测领域的代表之一。下面将详细介绍 Faster R-CNN 的原理...

    keras 实现faster rcnn目标检测

    通过阅读和理解这些代码,你可以更好地了解Faster R-CNN的实现细节,并根据自己的需求进行调整和优化。 总结来说,Keras实现的Faster R-CNN为开发者提供了一个快速且易于理解的目标检测解决方案。在Windows环境下,...

    目标检测模型-Faster-RCNN模型-Pytorch版本

    Faster R-CNN(Faster Region-based Convolutional Neural Network)是一种流行的目标检测框架,由Shaoqing Ren、Kaiming He、Ross Girshick和Jian Sun在2015年提出。Faster R-CNN在目标检测领域具有里程碑意义,...

Global site tag (gtag.js) - Google Analytics