рельсы, как экспортировать данные, чтобы преуспеть - PullRequest
0 голосов
/ 30 марта 2011

у меня есть таблица, подобная следующей enter image description here

Теперь я хочу экспортировать это в Excel, поэтому я могу открыть его в MS Excel

Ответы [ 3 ]

3 голосов
/ 30 марта 2011

Вы можете использовать FasterCSV драгоценный камень.

Вы можете использовать to_csv метод.

def index
  @records = ....
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @records }
    format.csv  { @records.to_csv }
  end
end

или настройте вывод и используйте метод send_data в контроллере.

format.csv do
  csv_string = FasterCSV.generate do |csv|
    # header row
    csv << ["id", "Column1", "Column1"]
    # data rows
    @records.each do |r|
      csv << [r.id, r.column1, r.column2]
    end
  # send it to the browser
  send_data csv_string,
            :type => 'text/csv; charset=iso-8859-1; header=present',
            :disposition => "attachment; filename=records.csv"
end
1 голос
/ 30 марта 2011

Я бы посоветовал использовать Электронная таблица , которая является зрелой.Я использую его с Rails 3 без проблем.

Общий процесс будет:

book = Spreadsheet::Workbook.new
sheet = book.create_worksheet :name => 'Customers'
sheet.row(0).concat %w{Name Country Acknowlegement}
book.write '/path/to/output/excel-file.xls'
0 голосов
/ 20 апреля 2011

Ruby 1.9 имеет встроенную библиотеку CSV с API, очень похожим на гем FasterCSV (фактически, он был интегрирован в Ruby!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...