如何在Rails中使用ActiveAdmin导出将在excel中使用多个选项卡打开的CSV文件?

时间:2012-02-28 18:48:32

标签: ruby-on-rails csv activeadmin

以下是ActiveAdmin documentation for customizing the CSV format我在我的rails应用程序中使用ActiveAdmin,我希望能够下载包含多个选项卡中数据的CSV文件。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您可以查看the spreadsheet gem(或here代码)。 CSV本身不支持我知道的多个标签。相反,您可能希望像生成CSV一样生成数据,然后按CSV执行新工作表:

@data_array_normally_for_csvs = #an array of the data hashes you might use for the csvs
book = Spreadsheet::Workbook.new

@data_array_normally_for_csvs.each do |data|
     sheet = book.create_worksheet
     sheet.name = "whatever"
     data.each do |k,v|
          sheet1.row(n) =  v #where n is the count for the hash and v is the array of values
     end
end

这只是为了给您一个想法...您想要深入了解网络上的电子表格documentationwikiexamples,看看什么效果最好。还有harvesthq's simple_xlsx_writer但我从未使用它,它似乎比电子表格使用得少。

答案 1 :(得分:0)

我们可以使用电子表格gem而不是csv选项,如下所示

Spreadsheet.client_encoding = 'UTF-8'
excel = Spreadsheet::Workbook.new
sheet1 = excel.create_worksheet :name => "Sheet1"
sheet1 = excel.create_worksheet :name => "Sheet2"
header1 = sheet1.row(0)
   header1.concat [
       'ID',
       'NAME',
      ]
data_row1 = sheet.row(1) 
data_row1.concat [
          1,
          'Anonymous'
        ]
header1 = sheet1.row(0)
header1.concat [
        'name',
        'id'
      ]
data_row1 = sheet1.row(3)
data_row1.concat [
      2,
      ''
    ]