django后台管理中导出Excel表格与其它表格数据等功能

这篇具有很好参考价值的文章主要介绍了django后台管理中导出Excel表格与其它表格数据等功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求,在django admin后台中添加导出excel表格功能
需求人群:财务,董事

# 1导出excel
# 2设定导出的字段
# 3设定导出的表头字段显示中文  
# 4设定导出的字段顺序
# 5权限:超级管理员与用于全国订单查看权限的人
# 6能够筛选字段,然后导出

1 安装django框架中导出Excel表格的插件

ip install django-import-export  

该插件允许导出文件的格式为:xls,xlsx,csv,tsv,ods,json,yaml,html

执行该命令将会安装以下插件

defusedxml-0.7.1  
diff-match-patch-20230430  
django-import-export-3.3.6  
et-xmlfile-1.1.0  
markuppy-1.14 odfpy-1.4.1  
openpyxl-3.1.2 pyyaml-6.0.1  
tablib-3.5.0 xlrd-2.0.1 xlwt-1.3.0  

django后台管理中导出Excel表格与其它表格数据等功能,django,excel,数据库

![[Pasted image 20240119043040.png]]

安装插件后,需要添加到应用列表中

2 在django settings.py 中的INSTALLED_APPS中添加"import_export"这个插件,并且需要在'django.contrib.admin'之前添加

django后台管理中导出Excel表格与其它表格数据等功能,django,excel,数据库

![[Pasted image 20240119043224.png]]

3在订单models.py相同路径中创建resources.py文件
django后台管理中导出Excel表格与其它表格数据等功能,django,excel,数据库

![[Pasted image 20240119043755.png]]

4修改admin.py中的参数与使用插件
在这里插入图片描述

![[Pasted image 20240119044610.png]]

5:效果
在这里插入图片描述

![[Pasted image 20240119044745.png]]
在这里插入图片描述

![[Pasted image 20240119044806.png]]
在这里插入图片描述

![[Pasted image 20240119044836.png]]

csv格式
在这里插入图片描述

![[Pasted image 20240119044908.png]]

tsv格式
在这里插入图片描述

![[Pasted image 20240119061928.png]]
xls格式
在这里插入图片描述

![[Pasted image 20240119044923.png]]
html格式
在这里插入图片描述

![[Pasted image 20240119061437.png]]
yaml格式
在这里插入图片描述

![[Pasted image 20240119061535.png]]

json格式
在这里插入图片描述

![[Pasted image 20240119061615.png]]

ods格式
在这里插入图片描述

![[Pasted image 20240119061705.png]]
这样还不够,并没有满足需求,我希望是以下图片这样的效果
1:导出的表头为我设定的中文字段
在这里插入图片描述

![[Pasted image 20240119060255.png]]

修改resources.py文件文章来源地址https://www.toymoban.com/news/detail-823151.html

from import_export import resources  
from .order_models import Order  
  
  
class OrderResource(resources.ModelResource):  
    class Meta:  
        # 模型是哪个  
        model = Order  
        # 要什么字段的数据? 不写则默认全部  
        # fields=()  
        # 当使用了默认全部 fields时,也会有些字段不需要,那么就要使用exclude,表示不需要的字段  
        # exclude=('id',)  
        # 因为导出的外键是数值,并不能显示相关信息,所以需要重新定义字段获取外键中的明显字段  
        fields = ('id',  
                  'userid__user__username',  
                  'trader_userid__user__username',  
                  'team_leader_userid__user__username',  
                  'urban_userid__user__username',  
                  'province_userid__user__username',  
                  'licensing_userid__user__username',  
                  'order_nationally__name',  
                  'order_province__name',  
                  'order_urban__name',  
                  'order_team__name',  
                  'store__name',  
                  'goodsid__name',  
                  'created_at_time',  
                  'updated_at',  
                  'douyinhao',  
                  'douyinname',  
                  'hezuoma',  
                  'shoujihao',  
                  'weixin',  
                  'douyin_have_num',  
                  'pay_method',  
                  'order_price',  
                  'offline_pay_method',  
                  'offline_price',  
                  'begin_show_time',  
                  'no_appointments',  
                  'authorization',  
                  'executestate',  
                  'chargebacks',  
                  'refundsuccessful',  
                  'sale_remark',  
                  'leader_remark',  
                  'licensing_remark',  
                  'trader_remark',  
                  'manage_remark',  
                  'promotion_cost',  
                  )  
        # 设置导出的顺序  
        export_order = ('id',  
                        'userid__user__username',  
                        'trader_userid__user__username',  
                        'team_leader_userid__user__username',  
                        'urban_userid__user__username',  
                        'province_userid__user__username',  
                        'licensing_userid__user__username',  
                        'order_nationally__name',  
                        'order_province__name',  
                        'order_urban__name',  
                        'order_team__name',  
                        'store__name',  
                        'goodsid__name',  
                        'created_at_time',  
                        'updated_at',  
                        'douyinhao',  
                        'douyinname',  
                        'hezuoma',  
                        'shoujihao',  
                        'weixin',  
                        'douyin_have_num',  
                        'pay_method',  
                        'order_price',  
                        'offline_pay_method',  
                        'offline_price',  
                        'begin_show_time',  
                        'no_appointments',  
                        'authorization',  
                        'executestate',  
                        'chargebacks',  
                        'refundsuccessful',  
                        'sale_remark',  
                        'leader_remark',  
                        'licensing_remark',  
                        'trader_remark',  
                        'manage_remark',  
                        'promotion_cost',  
                        )  
  
    def get_export_headers(self):  
        headers = []  
        for field_name in self.get_export_order():  
            headers.append(self.get_export_field_name(field_name))  
        return headers  
  
    def get_export_field_name(self, field_name):  
        column_names = {  
            'id': '订单id号',  
            'userid__user__username': '下单人',  
            'trader_userid__user__username': '投流人',  
            'team_leader_userid__user__username': '小组长',  
            'urban_userid__user__username': '市经理',  
            'province_userid__user__username': '省负责人',  
            'licensing_userid__user__username': '授权人',  
            'order_nationally__name': '国部门',  
            'order_province__name': '省部门',  
            'order_urban__name': '市部门',  
            'order_team__name': '组部门',  
            'store__name': '商店名',  
            'goodsid__name': '商品名',  
            'created_at_time': '创建时间',  
            'updated_at': '更新时间',  
            'douyinhao': '抖音号',  
            'douyinname': '抖音名',  
            'hezuoma': '合作码',  
            'shoujihao': '手机号',  
            'weixin': '微信号',  
            'douyin_have_num': '下单前已有粉丝数量',  
            'pay_method': '线上支付方式',  
            'order_price': '订单金额',  
            'offline_pay_method': '线下支付方式',  
            'offline_price': '线下收款金额',  
            'begin_show_time': '开播时间',  
            'no_appointments': '预约与否',  
            'authorization': '授权状态',  
            'executestate': '投流状态',  
            'chargebacks': '退单',  
            'refundsuccessful': '退单',  
            'sale_remark': '销售备注',  
            'leader_remark': '组长备注',  
            'licensing_remark': '授权人备注',  
            'trader_remark': '投流手备注',  
            'manage_remark': '市经理备注',  
            'promotion_cost': '投流成本',  
            'dingdanyingli': '本单盈利',  
        }  
        return column_names.get(field_name, field_name)

到了这里,关于django后台管理中导出Excel表格与其它表格数据等功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)

    PHP_XLSXWriter 是一个用于生成 Microsoft Excel 2007+ xlsx 文件的 PHP 库。XLSX 是一种用基于 XML 的开放式文件标准存储电子表格数据的格式,用于 Excel 2007 及更高版。PHP_XLSXWriter 库提供简单的 API,用于将 PHP 数组中的数据写入 XLSX 文件。它可以写入包含多个工作表(worksheet)和大量数据的

    2024年02月08日
    浏览(54)
  • Django_admin数据管理后台

    目录 一、基础操作 二、自定义后台操作数据行为 源码等资料获取方法 admin数据管理后台是django内置的一个后台管理界面,能查看已注册模型类的数据结构,以及对数据的增删改。 1.1 检查项目目录下的urls.py有没有如下配置 1.2 创建django的admin后台管理账号 1.3 在app对应目录下

    2024年02月16日
    浏览(37)
  • 基于Node.js的后台管理系统的数据表格导出下载

    今天在工作的时候接触到一个需求,就是现在有一个简单的后台管理系统是基于node.js来实现的,现在需要将其中的一个表格数据下载下来。乍一听还以为这个是一个简单的需求,以为只要简单的一个小时就能完成,没有想到直接花了我将近两个半小时并且还是在他人的帮助下

    2024年02月13日
    浏览(56)
  • 使用Django自带的后台管理系统进行数据库管理的实例

    Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能,可以让你快速创建一个管理界面,用于管理你的应用程序的数据模型。 使用Django后台管理系统,你可以轻松地进行以下操作: 数据库管理:你可以查看、添加、编辑和删除数据库中

    2024年02月15日
    浏览(60)
  • SpringBoot整合Easyexcel实现将数据导出为Excel表格的功能

    本文主要介绍基于SpringBoot +MyBatis-Plus+Easyexcel+Vue实现缺陷跟踪系统中导出缺陷数据的功能,实现效果如下图: EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。 本文

    2024年02月14日
    浏览(43)
  • Django基础入门:后台管理 超级用户 数据表注册操作③

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 🎁🎁: 文章末尾扫描二维码可以加入粉丝交流群,不定期免费送书。 Django 的后台管理系统是非常出

    2024年02月11日
    浏览(60)
  • Python学习笔记-Django框架基础,APP,数据模型,后台管理,路由

    Django框架是Python的常用web框架,遵循 MVC 设计模式的框架,采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的

    2024年02月16日
    浏览(42)
  • [Unity] 实现ScriptableObject数据同步Excel表格(对话系统数据管理,C# ExcelNPOI)

            在制作游戏中需要管理各种各样的项目资源,其中游戏中的剧情文字也是一种需要管理的资源。自己刚开始接触游戏开发的时候,第一次看MStudio里面的对话系统教学,只讲了怎么写脚本同步UI的设置,并没有讲有什么方式去管理这些对话数据,视频里拿的是txt来演

    2024年02月10日
    浏览(58)
  • Vue中导入并读取Excel数据

    在工作中遇到需要前端上传excel文件获取到相应数据处理之后传给后端并且展示上传文件的数据. 结果展示

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包