世界上最伟大的投资就是投资自己的教育

首页Ruby
Mikasa·Ackerman · 真仙

如何在 Rails 应用中导出电子表格

Mikasa·Ackerman发布于3002 次阅读

如何在rails应用中导出电子表格

Gemfile 中添加

gem 'spreadsheet'
bundle install

假设我们要导出 项目数据:

controller 中添加导出:

def exprot
  projects = Project.limit(10)
  send_data(Project.exprot_projects(projects), :type => "text/excel;charset=utf-8; header=present", :filename => "项目统计表.xls")
end

model 中添加想要导出的数据格式

def self.exprot_pojects(projects)
    xls_report = StringIO.new
    Spreadsheet.client_encoding = "UTF-8"
    book = Spreadsheet::Workbook.new
    style0 = Spreadsheet::Format.new :weight => :bold, :size => 16, :align => :center
    style = Spreadsheet::Format.new :weight => :bold, :size => 10
    sheet1 = book.create_worksheet :name => "项目统计表.xls"
    # 设置单元格高度
    sheet1.row(0).height = 18
    sheet1.row(0).default_format = style
    # 设置单元格宽度
    sheet1.column(1).width = 15
    sheet1.column(2).width = 15
    sheet1.row(0).concat ["项目名称","项目编号"]

    projects.each_with_index do |project, index|
      sheet1.row(index+1).concat [project.name, project.number]
    end

    book.write xls_report
    xls_report.string
  end

这样在 controller 中调用此方法,或者传入想要导出的集合就可以导出了

本站文章均为原创内容,如需转载请注明出处,谢谢。

0 条回复
暂无回复~~
喜欢
统计信息
    学员: 29915
    视频数量: 1996
    文章数量: 526

© 汕尾市求知科技有限公司 | Rails365 Gitlab | 知乎 | b 站 | csdn

粤公网安备 44152102000088号粤公网安备 44152102000088号 | 粤ICP备19038915号

Top