【问题标题】:How to write xls to tmp folder如何将xls写入tmp文件夹
【发布时间】:2016-08-18 09:33:16
【问题描述】:

我按照 railscasts 教程学习了如何渲染 excel 文件 (http://railscasts.com/episodes/362-exporting-csv-and-excel)。 我们已经有很多代码,所以我试图避免使用 gem 重写。如何让它写入 rails /temp 目录而不是让用户下载它?生成后,我将其附加到电子邮件并发送给用户,而不是让用户等待很长时间。我现在的问题是如何写入临时目录。

def mymethod
  @products = Product.order(:name)

  respond_to do |format|
    format.xls
  end
end

我们使用的是 Rails 3.2。

【问题讨论】:

  • 你能在这方面取得任何进展吗?

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 export-to-csv


【解决方案1】:

这是一个非常通用的示例,说明如何将 CSV 写入 tmp 文件

require 'csv'

def my_method
  @products = Product.order(:name)

  product_csv = CSV.generate do |csv|
          #you have to add values to CSVs inside arrays
          csv << %w(column_name1 coulmn_name2 column_name3)

          @products.each do |pd|
            csv << [pd.name,
                    pd.price,
                    pd.product_line]
          end
        end

  File.open("tmp/product.xls", 'w:UTF-8') {|file| file.write(product_csv)}
end

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 1970-01-01
    • 2012-12-22
    • 2013-01-23
    • 1970-01-01
    • 2021-09-12
    • 2013-07-01
    • 1970-01-01
    • 2019-11-26
    相关资源
    最近更新 更多