在rails 4应用程序中,如何将excel电子表格文件转换为pdf .
当我尝试将Excel实现为pdf时,如果excel列大小很大,则会在不同的页面中列出内容 .
如何生成pdf而不将数据移动到pdf中的下一页 .
请帮忙,谢谢
所以你基本上有两个选项可以自己实现并使用CSV gem /库(default CSV,faster CSV或smarter CSV),假设通过"excel"可以接受CSV . 如果CSV不可加,则可以使用axlsx gem . 然后,对于pdf转换,您可以使用类似prawn的内容 . 如果您决定自己构建它,请按照以下步骤操作 .
创建一个处理Reports的控制器,我建议使用 rails g controller report upload generate_table show generate_pdf 生成器创建一个控制器和一个上传过程的视图
rails g controller report upload generate_table show generate_pdf
在上传视图中创建文件上传表单 .
在提交时,您将使用CSV或excel gems之一将文件发送到生成操作处理
处理完毕后,您的最终产品应该是数组或散列(作为实例变量),您可以将其发送到show动作
在show视图中,您将迭代该哈希/数组并将内容封装在html表中 .
在show视图中你应该有一个按钮,它将相同的散列/数组发送到 generate_pdf 控制器动作,你将使用 prawn 创建一个pdf,你可以使用类似send_data之类的东西将完成的pdf文件发送给用户 .
generate_pdf
prawn
这大致是你可以减少低级细节的方法 . 现在,如果你想使用开箱即用的解决方案,你可以使用像Ruport这样的东西 . Ruport将为您处理大部分繁重的工作,您唯一需要设置的模型和关联以按照设计的方式使用它,这可能不是您的选择 .
1 回答
所以你基本上有两个选项可以自己实现并使用CSV gem /库(default CSV,faster CSV或smarter CSV),假设通过"excel"可以接受CSV . 如果CSV不可加,则可以使用axlsx gem . 然后,对于pdf转换,您可以使用类似prawn的内容 . 如果您决定自己构建它,请按照以下步骤操作 .
创建一个处理Reports的控制器,我建议使用
rails g controller report upload generate_table show generate_pdf
生成器创建一个控制器和一个上传过程的视图在上传视图中创建文件上传表单 .
在提交时,您将使用CSV或excel gems之一将文件发送到生成操作处理
处理完毕后,您的最终产品应该是数组或散列(作为实例变量),您可以将其发送到show动作
在show视图中,您将迭代该哈希/数组并将内容封装在html表中 .
在show视图中你应该有一个按钮,它将相同的散列/数组发送到
generate_pdf
控制器动作,你将使用prawn
创建一个pdf,你可以使用类似send_data之类的东西将完成的pdf文件发送给用户 .这大致是你可以减少低级细节的方法 . 现在,如果你想使用开箱即用的解决方案,你可以使用像Ruport这样的东西 . Ruport将为您处理大部分繁重的工作,您唯一需要设置的模型和关联以按照设计的方式使用它,这可能不是您的选择 .