django - 使用 Django-tables2 将 Django 模型导出到 Excel(不同的工作表)

标签 django django-tables2

我已经检查了 django-tables2 文档,但是我没有找到将模型导出到 Excel 中不同工作表的简单方法。为简单起见,假设我有两个不同的模型:销售和产品。我想导出一个包含两个不同工作表的 Excel 文档:销售和产品。我可以使用下面显示的代码导出第一个模型,但我不确定是否有办法将 Products 模型导出到另一个工作表。任何帮助将不胜感激。


export_format = request.GET.get('_export', None)

if TableExport.is_valid_format(export_format):
        table = [[Sales Table Object]]
        exporter = TableExport(export_format, table)
        return exporter.response('File_Name.{}'.format(export_format)) ```

最佳答案

因此,我通过使用 pandas 提出了一个简单的解决方案,可能不是最有效的。将查询集转换为 pandas 数据框并使用 pandas ExcelWriter 生成 excel,它可以针对不同的工作表完成。可能对于大数据的部署,使用像 xlsxwriter 这样的库可能更好,但它适用于我想做的事情。

    iden= request.GET["id"]
    output = BytesIO()
    queryset = Efectivo.objects.filter(Q(id1=iden)).values()
    df = pd.DataFrame(queryset)
    writer = pd.ExcelWriter(output,engine='xlsxwriter')
    df.to_excel(writer,sheet_name='Efectivo')
    writer.save()
    output_name = 'example'
    output.seek(0)
    response = HttpResponse(output, 
    content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    response['Content-Disposition'] = f'attachment; filename={output_name}.xlsx'
        
    
    return response```

关于django - 使用 Django-tables2 将 Django 模型导出到 Excel(不同的工作表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73523300/

相关文章:

python - django-tables2:创建输入文本框

python - Django/python-social-auth : LinkedIn extra data returns null on some fields

mysql - django 字符集与 MySQL 怪异

python - 强制 Django 使用 32 位 Python

python - 如何在 django-tables2 中使用基于类的 View 控制分页?

django - django-tables2 中的非查询集数据排序

django - TDD Django 测试似乎跳过了 View 代码的某些部分

python - “ascii”编解码器无法对位置 5 : ordinal not in range(128) error 中的字符 u'\u2019' 进行编码

django-tables2:在渲染方法中使用请求用户

django-tables2 - 在 django-tables2 中动态设置 per_page