Как экспортировать файл HTML с расширением XLS?

Я пытаюсь генерировать отчеты. Я уже создал таблицу HTML в представлении и хотел следовать подходу, описанному в "Экспорт данных в CSV и Excel в вашем приложении Rails".

Я читаю:

«В моем проекте я сохраняю таблицу html в файл, но даю ей расширение xls вместо html. Например, table.xls. Затем я отправляю ее в браузер с типом пантомимы Excel, и Excel открывает этот файл, а также отформатируйте таблицу, как таблицу html, так что вы получите выделенные жирным шрифтом заголовки и цвета фона ячеек и т. д. "

«Самый простой способ, который я знаю, — создать HTML-файл с таблицей и присвоить ему расширение XLS. Кодировка HTML соблюдается, вы можете иметь столько разрывов строк, сколько хотите, прямой или прямой порядок байтов не проблема, th-теги определите заголовки столбцов, и уже есть множество решений для создания файла».

Как я могу сохранить таблицу HTML в файл и дать ей расширение .XLS, чтобы открыть ее в Excel?


person leonel    schedule 11.01.2012    source источник
comment
Некоторые ваши пользователи ошибаются. Создать HTML-файл с таблицей и присвоить ему расширение XLS — совершенно бессмысленный/бесполезный совет. Сообщение в блоге, на которое вы ссылаетесь, уже содержит довольно хорошее объяснение того, как создать CSV, который может быть прочитан Excel. Если вам что-то там непонятно, спрашивайте.   -  person jrochkind    schedule 12.01.2012
comment
@jrochkind автор сообщения, который является уважаемым программистом в сообществе rails, сказал, что Нико и Крис сказали нам, что вы также можете работать с HTML-таблицами в Excel, который также прост и даже позволяет форматировать. поэтому я не думаю, что эти решения были бы совершенно бессмысленными/бесполезными советами.   -  person leonel    schedule 12.01.2012
comment
blog.brijeshshah.com/export-to-excel-in -ruby-on-rails   -  person leonel    schedule 12.01.2012
comment
Есть ли более официальное расширение, чем .xls, означающее, что HTML предназначен для отображения в Excel?   -  person endolith    schedule 29.07.2020


Ответы (1)


Не знаю, хороший это совет или нет. Лично я всегда придерживаюсь CSV. Но вот как бы вы это сделали.

class ExportController < ApplicationController
  def export
    html = build_html_table()
    respond_to do |format|
      format.xls { send_data html, :type => 'application/vnd.ms-excel; charset=utf-8; header=present', :filename => 'export.xls' }
    end
  end
end

Затем в config/initializers/mime_types.rb вам нужно добавить:

Mime::Type.register 'application/vnd.ms-excel', :xls
person bioneuralnet    schedule 12.01.2012