`

rails生成excell文件,并上传到FTP服务器

    博客分类:
  • RUBY
阅读更多
  desc 'hainan upload college'
  namespace :hn_upload_college do
    task :generate => :environment do
      require"net/ftp"
      @time = Time.now - 1.month
      @year = @time.year.to_s
      if @time.month < 10
        @month = "0"+@time.month.to_s
      else
        @month = @time.month.to_s
      end
      @fday = "0"+@time.beginning_of_month.day.to_s
      @lday = @time.end_of_month.day.to_s
      filename = @year+@month+"-WLAN-GaoXiao.csv"
      local_path = "#{RAILS_ROOT}/tmp/import/#{filename}"
      sql = "select i.citycn,i.towncn,d.code_name,w.sampleyear,w.samplemonth,round((sum(RXBytesTotal)+sum(TXBytesTotal))/1000,2) flow
from device_infos i,wlan_ap_perf_aggr_month w,dic_codes d
where i.ap(+) = w.ap
and i.port_type = d.id(+)
and d.code_name = '高校'
and w.sampleyear = to_char(add_months(sysdate,-1),'yyyy')
and w.samplemonth = to_char(add_months(sysdate,-1),'mm')
group by i.citycn,i.towncn,d.code_name,w.sampleyear,w.samplemonth"
      con = External.connection()
      @aps = con.select_all(sql)
      local_file = File.new(local_path, "w")
      date = ["报表分析时间范围:".to_iso,@year+"/"+@month+"/"+@fday,@year+"/"+@month+"/"+@lday]
      local_file << date.join(",") + "\n"
      header = ["地市".to_iso,"郊县".to_iso,"热点类型".to_iso,"年份".to_iso,"月份".to_iso,"无线侧流量(MB)".to_iso]
      local_file << header.join(",") + "\n"
      @aps.each do |ap|
        data=[]
        for b in %w[citycn towncn code_name   sampleyear samplemonth flow]
          ap["#{b}"] ? a=ap["#{b}"].to_s.to_iso : a=''
          data<<a
        end
        local_file << data.join(",") + "\n"
      end
      local_file.close
      uploadftp(local_path)
    end
  end

  def uploadftp(file)
      ftp_config = YAML.load_file("#{RAILS_ROOT}/config/value_analysis.yml").symbolize_keys!
      Net::FTP.open(ftp_config[:hn_upload_host], ftp_config[:hn_upload_username], ftp_config[:hn_upload_password]) { |ftp|
        ftp.put file, File.join(ftp_config[:hn_upload_remote_path], File.basename(file))
      }
  end


0
0
分享到:
评论

相关推荐

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

    **Ruby-GoOnRails:利用Rails生成器构建Golang应用** Ruby on Rails(简称Rails)是一种流行的Web开发框架,以其“约定优于配置”的理念和高效的开发速度受到开发者喜爱。而Go(Golang)则是一种静态类型、编译型的...

    rails上传文件_paperclip

    在Ruby on Rails框架中,Paperclip是一个非常流行的用于处理文件上传的库。它提供了一种简单而优雅的方式来管理和处理模型中的附件,如图片、文档等。Paperclip与ActiveRecord紧密集成,使得在Rails应用中添加文件...

    Rails中上传文件保存中文文件名乱码

    这个对象会将上传的文件暂存到一个临时目录,并提供一个文件名属性,该属性可能需要进行编码转换才能正确地保存到服务器的文件系统上。 解决中文文件名乱码问题的一个常见方法是使用`iconv`库。`iconv`是一个强大的...

    Rails里给文件上传添加progress_bar

    在Ruby on Rails(Rails)框架中,为文件上传添加进度条功能可以显著提升用户体验,让用户在上传大文件时能够清楚地看到进度,增加交互性。本文将深入探讨如何在Rails应用中实现这一功能。 首先,我们需要理解文件...

    rails ajax提交文件或图片

    # 保存上传的文件或图片到服务器 @upload = Upload.new(upload_params) if @upload.save respond_to do |format| format.html { redirect_to root_path, notice: 'File uploaded successfully.' } format.js ...

    rails 文件上传

    本篇文章将深入探讨Rails中的文件上传机制,并结合给定的“rails 文件上传”主题,提供关于如何在Rails应用中实现文件上传的详细知识。 1. **ActionDispatch::Http::UploadedFile**: 当用户通过表单上传文件时,...

    jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成.zip

    jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成 Rails 文件上传jQuery-File-Plugin 是一个文件上传插件,由的Tschan 。 jQuery文件上传功能多文件选择。drag&拖放支持。进度栏和jQuery预览图像。 支持...

    在rails中 使用RSpec生产CHM文档

    这可能涉及到阅读Rails应用的控制器、模型、视图和库文件,找出生成CHM的具体实现。同时,标签“工具”意味着可能涉及到了其他辅助工具,如文本处理、HTML转换或版本控制工具,它们可能在生成和管理CHM文档过程中...

    rails_layout, 为各种前端框架生成 Rails 应用程序布局文件.zip

    rails_layout, 为各种前端框架生成 Rails 应用程序布局文件 RailsLayout gem使用这里 gem 可以设置你选择的前端框架的布局文件:Zurb基础 5.3Bootstrap 4.0Bootstrap 3.3它还将为 Bootstrap 或者基础设置设计视图。...

    升级版本后Rails的文件上传

    Rails提供了多种处理文件上传的方法,包括直接存储到本地文件系统、使用云存储服务(如Amazon S3)以及第三方库如Paperclip、Carrierwave或ActiveStorage等。在升级Rails版本后,我们需要关注以下几个关键知识点: ...

    swagger-docs, 为 Rails api生成 swagger ui json文件,使用简单的DSL.zip

    swagger-docs, 为 Rails api生成 swagger ui json文件,使用简单的DSL Swagger::Docs使用api为 Rails 应用生成swagger的ui json文件。 你可以向控制器类添加 swagger DSL,然后运行一个rake任务来生成json文件。 ...

    nifty-generators, 有用的Rails 生成器脚本集合.zip

    nifty-generators, 有用的Rails 生成器脚本集合 漂亮的生成器用于脚手架,布局文件,身份验证和更多的有用 Rails 生成器脚本的集合。设置 Rails 3将 gem 添加到你的。gem"nifty-generators", :group =&gt; :developm

    使用sitemap_generator来为rails网站生成Sitemap

    `sitemap_generator` gem 是一个适用于Ruby on Rails框架的开源工具,它能够自动扫描你的Rails应用,生成包含所有路由的Sitemap。安装这个gem非常简单,只需要在Gemfile中添加以下行: ```ruby gem 'sitemap_...

    终于知道怎么把rails Web程序打包成可执行文件了

    在Ruby on Rails开发的世界里,将Web应用程序打包成可执行文件是一个常见的需求,尤其是在需要部署到没有Ruby环境的服务器或者希望提供用户一个独立运行的软件时。标题中的“终于知道怎么把rails Web程序打包成可...

    rails-exporter-源码.rar

    3. 文件生成与下载:Rails 内置的 send_data 和 send_file 方法可用于在服务器端生成文件后发送到客户端下载。 五、源码学习步骤 1. 阅读项目 README 文件,了解基本用法和安装步骤。 2. 分析 models 文件,理解...

    Rails3常用命令行命令

    这会生成一个包含所有必要文件和目录结构的新Rails项目。接下来,你可以通过以下命令进入Rails的控制台,也称为Console: ```bash rails c 或者 rails console ``` 在控制台中,你可以直接操作应用的数据模型和...

    Rails的文件附件扩展Paperclip.zip

    Paperclip 是 Rails 框架的一个插件,用于扩展 ActiveRecord 以支持简单的文件附件的功能。 标签:Paperclip

    Ruby-简单的CLI利用Docker生成和运行Rails的环境

    简单的CLI利用Docker生成和运行Rails的环境

Global site tag (gtag.js) - Google Analytics