我是一个大量使用django-tables2的用户,并且我已经考虑向django- table添加一个通用扩展:我想让用户能够通过单击表附近的某个按钮将所有的表数据导出到excel (使用xlwt)或csv。
现在,我已经以一种非通用的方式实现了这一点,这意味着我已经在我的模板中包含了一个POST表单和一个按钮,并添加了一个检查,以查看该按钮是否已在填充表的视图中被单击。如果单击该按钮,则返回xls而不是normal模板。此外,我还实现了一个通用函数,该函数获取django-table2表(任何表)并将其转换为xlwt表(以便将其放入工作簿)。
这很好用,但由于我将对所有表使用此按钮,因此我不想将导出表单和按钮添加到包含表的所有html模板中。另外,我不想在我所有的视图中添加POST检查!这绝对不是干的:(
理想情况下,我希望有一个类,假设它是ExportTable,它将扩展django-tables2的Table类,并可用作替代类-当我使用ExportTable作为基类创建我的表时,按钮和视图将具有导出该表所需的组件。据我所知,这是不可能的:
有人能建议我用哪种方式扩展django-tables2,以便能够以最简单的方式添加"export“功能吗?这意味着我只能在我的模板(或其扩展)中使用{% render_table table %}标签,而不需要在视图中添加检查以查看用户是否单击了导出按钮(当然也不需要添加额外的视图和url路由来处理)。泛型类视图是可行的吗?
我将接受最干燥和完整(我希望有一些源代码和评论)答案:)
发布于 2013-01-30 03:04:34
我使用django-tables2-reports将tables2数据导出为csv和xls。我在mo (reported here)遇到了xls的问题,但我相信解决方案很快就会出现。
发布于 2019-08-28 05:30:00
对于遇到这个问题的任何人,Django-tables2有一节专门介绍如何使用tablib包导出各种格式。(从v1.8.0开始存在)
https://django-tables2.readthedocs.io/en/latest/pages/export.html
...
现在,如果您将_export=csv附加到查询字符串,浏览器将下载一个包含您的数据的csv文件。支持的导出格式包括:
csv、json、latex、ods、tsv、xls、xlsx、yml
https://stackoverflow.com/questions/13063477
复制相似问题