# 基于Gem whenever的定时脚本
set :output, "/log/cron_log.log"
every 1.day, :at => '1:00 am' do
rake "report:dayly_orders"
end
# rake任务
namespace :report do
task dayly_orders: :environment do
search_time = (Time.now - 1.days).strftime("%Y-%m-%d 00:00:00")
# 发送邮件
ReportMailer.dayly_report_mail(search_time).deliver
end
end
# 邮件设置
def dayly_report_mail(search_time)
attachments['订单统计'<< '-' << search_time.to_s << '.xlsx'] = SqlToXlsx.order_dayly_report
attachments['产品日报'<< '-' << search_time.to_s << '.xlsx'] = SqlToXlsx.product_dayly_report
mail(:to=> "123@qq.com" , :cc =>"123@qq.com" ,:subject => "售订单统计")
end
# 生成报表
class SqlToXlsx
def self.order_dayly_report
# 定义SQL
sql = <<-SQL
-------
SQL
# 解析SQL
columns = %w{订单日期 客户订单编号 收货联系人电话 }
reports = execute_sql(sql)
# 生成EXCELL
to_xlsx(columns,reports)
end
def self.execute_sql(sql)
#执行报表sql查询
cullent_attributes = ActiveRecord::Base.connection.execute(sql)
end
def self.to_xlsx(columns,reports,search_time)
# 生成EXCELL
file = Spreadsheet::Workbook.new
list = file.create_worksheet :name =>Time.now
list.row(0).concat columns
reports.each_with_index { |report, i|
list.row(i+1).concat report
}
xls_report = StringIO.new
file.write xls_report
xls_report.string
end
end
分享到:
相关推荐
在IT领域,将本地Excel文件导入到SQL数据库是一项常见的任务,尤其在数据分析、报表生成以及数据迁移等场景中。Excel的灵活性和易用性使其成为数据处理的首选工具,而SQL数据库则提供了强大的数据存储和查询能力。...
### iFIX连接SQL数据库读写数据与制作Excel...通过以上步骤,不仅可以实现iFIX与SQL Server之间的数据交互,还能够生成包含实时数据的Excel报表。这对于需要定期查看生产数据和进行分析的企业来说是非常实用的功能。
首先,我们需要理解涉及的三个主要元素:Excel文件(.xlsx),SQL数据库以及ASP.NET框架。 Excel文件作为数据源,通常包含结构化的表格数据,可以是用户输入的数据,或者通过各种业务系统生成的报告。ASP.NET是微软...
在IT行业中,将数据从一个系统迁移到另一个是常见的任务,尤其在数据分析和报表生成时。本示例涉及的是使用Delphi编程环境从SQL SERVER数据库导出数据到Excel的应用。Delphi是一种流行的RAD(快速应用开发)工具,以...
在IT行业中,将Excel数据导入SQL Server数据库是一项常见的任务,特别是在数据分析、报表生成以及系统集成等领域。本知识点主要涉及如何实现这一过程,并保存Excel文件,以便于后续的使用或更新。 首先,我们要理解...
本知识点将深入讲解如何将Excel表数据导入到SQL数据库中,这在数据分析、报表生成、业务系统集成等场景下非常常见。 首先,我们需要理解Excel和SQL数据库之间的基本差异。Excel是微软公司开发的一款电子表格应用,...
在IT行业中,导出数据到Excel是常见的任务,特别是在数据分析、报表生成以及数据共享时。在本场景中,我们关注的是如何将数据从数据库(通过RS对象,通常指的是RecordSet,即记录集)导出为Excel 2007版本的xlsx文件...
2. **使用组件**: 另外,也可以使用第三方组件如Aspose.Cells,它允许直接生成Excel文件(.xls或.xlsx)而无需依赖Excel应用程序。不过,这需要购买许可证。 **导入Excel到MSSQL** 1. **使用Openrowset**: SQL ...
在日常工作中,我们可能需要处理大量的数据,如销售记录、客户信息或者库存清单。手动输入这些数据不仅耗时,还容易出错。此时,批量导入功能就显得尤为实用。Excel提供了多种方法来实现批量导入: 1. **CSV导入**...
在IT行业中,"导出Excel"是一个常见的任务,特别是在数据分析、报表生成以及数据共享等领域。Excel作为Microsoft Office套件中的重要组件,因其强大的表格处理和数据分析能力而深受用户喜爱。导出Excel通常指的是将...
JXL库是一个流行的Java库,专门用于处理Microsoft Excel文件,包括读取、写入和修改Excel数据。在Java编程环境中,JXL库提供了一个简单易用的API,使得开发人员可以方便地集成Excel功能到他们的应用程序中。这个库...
7. **性能优化**:当处理大量数据时,考虑使用内存映射文件技术(如`boost::iostreams::mapped_file`),或者将数据存储在数据库中,通过SQL查询提高效率。 8. **错误处理**:在编程中,一定要处理可能出现的错误,...
在IT行业中,自动化输出Excel查询表是一项非常实用的技能,特别是在数据分析、项目管理以及报表生成等领域。通过自动化,我们可以大大提高工作效率,减少手动操作带来的错误,同时实现数据的实时更新和分析。下面,...
例如,在Web应用中,后端可能需要生成CSV或XLSX文件,前端则通过按钮触发下载。 2. **CSV格式**:Comma-Separated Values(逗号分隔值)是一种常见的导出格式,可以被大多数程序识别,包括Excel。CSV文件简单且易于...
在本案例中,我们需要实现从Access数据库将数据导出到Excel中,这在数据处理、报表生成或分析时非常常见。 1. **Access数据库基础**: Access数据库是Microsoft Office套件的一部分,它使用Jet Engine作为其数据库...
4. **数据类型(DATA_TYPE)**:数据类型字段用于定义字段的数据格式,如json、xml、csv、xlsx等,这些格式涵盖了文本、结构化和半结构化数据,使得数据集可以处理各种类型的数据。 5. **执行时间规则(EXEC_EXP和...