экспортируйте в Excel, PDF и документ с помощью Ruby on Rails

Вы могли помочь мне в экспорте файлов выделиться, PDF и .doc формат через приложения направляющих??

5
задан Sumeru Suresh 29 March 2010 в 11:19
поделиться

1 ответ

Для Excel

  1. Я использовал FasterCSV и этот пост для создания файлов CSV, которые очень хорошо открываются в Excel.
  2. Вы также можете создать таблицу HTML и использовать файлы iqy для загрузки Excel. Для этого вы можете создать несколько новых псевдонимов, а затем обработать новые форматы .iqy и .excel.

В config / initializers / mime_types.rb

Mime::Type.register_alias "text/html", :excel
Mime::Type.register "text/x-ms-iqy", :iqy

Затем в вашем контроллере обработайте форматы .iqy и .excel

respond_to do |format|
  format.html
  format.excel
  format.iqy {
    text = "WEB\n1\n%s" % URL_FOR_DATA_VIA_GET, :format => :excel)
    render :text => text
  }
end

Ваш шаблон для формата excel должен быть просто таблицей HTML с данными в ней. Формат iqy просто отображает текст, теперь необходим шаблон действия. Возможно, вам понадобится файл application.excel.erb, в котором нет всей вашей навигации и т. Д., Так что вы получите красивую чистую таблицу html. Также см. эту статью базы знаний для получения дополнительной информации.

Для PDF

  1. См. Этот другой вопрос SO , предлагаемый плагин выглядит хорошо, но я его не использовал.
  2. Я играл, но никогда не использовал в производстве креветку . Вроде хорошо, просто не использовал.

Для Doc

я бы посоветовал вам просто придерживаться простого текста или RTF. Мне не известны какие-либо плагины для этого, но, вероятно, что-то есть.

Другой подход

Я с большим успехом использовал JasperReports в проектах на чистом Java. Можно было бы использовать продукт JasperServer, JRuby, вашу собственную оболочку приложения или мост ruby-java для генерации выходных данных с помощью Jasper. См. этот пост . Как только вы перейдете на Java, вы также получите замечательный JExcelApi .

8
ответ дан 14 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: