Как использовать ActiveAdmin в Rails для экспорта файла CSV, который открывается в нескольких вкладках в Excel? - PullRequest
1 голос
/ 28 февраля 2012

Вот документация ActiveAdmin для настройки формата CSV Я использую ActiveAdmin с моим приложением rails, и я хотел бы иметь возможность загрузить файл CSV, содержащий данные на нескольких вкладках. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Тогда вы можете посмотреть гем таблицы (или здесь для кода). 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

Это просто для того, чтобы дать вам представление ... вы хотели бы покопаться в электронной таблице документации , вики и примеров в Интернете, чтобы увидеть что работает лучше всего Существует также simple_xlsx_writer *unch5q , но я никогда не использовал его, и он кажется гораздо менее используемым, чем электронная таблица.

0 голосов
/ 14 января 2015

Вместо опции 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,
      ''
    ]
...