使用libreoffice

时间:2016-10-26 11:48:08

标签: ruby-on-rails ruby excel pdf-generation libreoffice

在rails 4应用程序中,如何将excel电子表格文件转换为pdf。

当我尝试将Excel实现为pdf时,如果excel列大小很大,则会在不同的页面中列出内容。

如何在不将数据移动到pdf中的下一页的情况下生成pdf。

请帮忙, 感谢

1 个答案:

答案 0 :(得分:0)

所以你基本上有两个选项可以自己实现并使用CSV gem /库(default CSVfaster CSVsmarter CSV),假设通过“excel”CSV是可以接受的如果CSV不可加入,则可以使用axlsx gem代替。然后,对于pdf转换,您可以使用prawn之类的内容。如果您决定自己构建它,请按照以下步骤操作。

  1. 创建一个处理Reports的控制器,我建议使用rails g controller report upload generate_table show generate_pdf生成器创建控制器和上传过程的视图
  2. 在上传视图中创建文件上传表单。
  3. 在提交时,您将使用CSV或excel gems
  4. 之一将文件发送到生成操作处理
  5. 处理完毕后,您的最终产品应该是数组或散列(作为实例变量),您可以将其发送到show action
  6. 在show视图中,您将迭代该哈希/数组并将内容封装在html表中。
  7. 在show视图中,您应该有一个按钮,它将相同的哈希/数组发送到generate_pdf控制器操作,您将使用prawn创建pdf,您可以使用类似{{{ 3}}将完成的pdf文件发送回用户。
  8. 这大致是你可以减少低级细节的方法。现在,如果您想使用开箱即用的解决方案,可以使用send_data之类的内容。 Ruport将为您处理大部分繁重的工作,您唯一需要设置的模型和关联以按照设计的方式使用它,这可能不是您的选择。