本文将介绍Python如何制作报表,主要分为三个部分:导出Excel报表、导出PDF报表和生成前端统计图表。

导出Excel报表

数据报表是用表格、图表等格式来动态显示数据的一种方式,它的公式被描述为:报表 = 多样的格式 + 动态的数据。Python中有很多第三方库支持在程序中写Excel文件,包括[xlwt](<https://xlwt.readthedocs.io/en/latest/>)[xlwings](<https://docs.xlwings.org/en/latest/quickstart.html>)[openpyxl](<https://openpyxl.readthedocs.io/en/latest/>)[xlswriter](<https://xlsxwriter.readthedocs.io/>)[pandas](<http://pandas.pydata.org/>)等,其中的xlwt虽然只支持写xls格式的Excel文件,但在性能方面的表现还是不错的。下面我们就以xlwt为例,来演示如何在Django项目中导出Excel报表。

安装xlwt

安装xlwt

pip install xlwt

导出包含所有老师信息的Excel表格的视图函数。

def export_teachers_excel(request):# 创建工作簿wb = xlwt.Workbook()# 添加工作表sheet = wb.add_sheet('老师信息表')# 查询所有老师的信息queryset = Teacher.objects.all()# 向Excel表单中写入表头colnames = ('姓名', '介绍', '好评数', '差评数', '学科')for index, name in enumerate(colnames):sheet.write(0, index, name)# 向单元格中写入老师的数据props = ('name', 'detail', 'good_count', 'bad_count', 'subject')for row, teacher in enumerate(queryset):for col, prop in enumerate(props):value = getattr(teacher, prop, '')if isinstance(value, Subject):value = value.namesheet.write(row + 1, col, value)# 保存Excelbuffer = BytesIO()wb.save(buffer)# 将二进制数据写入响应的消息体中并设置MIME类型resp = HttpResponse(buffer.getvalue(), content_type='application/vnd.ms-excel')# 中文文件名需要处理成百分号编码filename = quote('老师.xls')# 通过响应头告知浏览器下载该文件以及对应的文件名resp['content-disposition'] = f'attachment; filename*=utf-8''{filename}'return resp

这段代码的作用是创建一个名为“老师信息表”的Excel工作表,向其中写入老师的信息,并将其转换为二进制数据,最后将其响应给客户端,使得浏览器能够下载该文件。

Django中url映射

映射URL。

urlpatterns = [path('excel/', views.export_teachers_excel),
]

导出PDF报表

在Django项目中,如果需要导出PDF报表,可以借助三方库reportlab来生成PDF文件的内容,再将文件的二进制数据输出给浏览器并指定MIME类型为application/pdf,具体的代码如下所示。

安装reportlab

安装reportlab

pip install reportlab

导出PDF报表的视图函数

def export_pdf(request: HttpRequest) -> HttpResponse:buffer = io.BytesIO()pdf = canvas.Canvas(buffer)pdf.setFont("Helvetica", 80)pdf.setFillColorRGB(0.2, 0.5, 0.3)pdf.drawString(100, 550, 'hello, world!')pdf.showPage()pdf.save()resp = HttpResponse(buffer.getvalue(), content_type='application/pdf')resp['content-disposition'] = 'inline; filename="demo.pdf"'return resp

这段代码的作用是创建一个名为“demo.pdf”的PDF文件,将其转换为二进制数据,最后将其响应给客户端,使得浏览器能够下载该文件。

Django中url映射

映射URL。

urlpatterns = [path('pdf/', views.export_pdf),
]

生成前端统计图表

如果项目中需要生成前端统计图表,可以使用百度的ECharts。ECharts 是一个使用 JavaScript 实现的开源可视化库,提供了直观、交互丰富、可自定义的数据可视化图表。ECharts 支持多种图表类型,包括折线图、柱状图、散点图、饼图、仪表盘、地图等。具体的使用方法如下:

安装echarts

安装echarts库。

pip install echarts

在HTML中引入ECharts库

在HTML文件中引入ECharts库。

<!doctype html>
<html>
<head><meta charset="utf-8"><title>老师评价统计图</title><!-- 引入 ECharts 文件 --><script src="<https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0/echarts.min.js>"></script>
</head>
<body><!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的 DOM,初始化 ECharts 实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {title: {text: '老师评价统计图'},tooltip: {},legend: {data:['好评', '差评']},xAxis: {data: json.names},yAxis: {},series: [{name: '好评',type: 'bar',data: json.good},{name: '差评',type: 'bar',data: json.bad}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script>
</body>
</html>

Django中url映射

映射URL。

urlpatterns = [path('echarts/', views.show_echarts),
]

在视图函数中生成ECharts图表

在视图函数中生成ECharts图表。

def show_echarts(request):# 模拟数据data = {'names': ['小明', '小李', '小王', '小张', '小赵'],'good': [89, 78, 92, 86, 93],'bad': [11, 22, 8, 14, 7]}# 渲染模板return render(request, 'echarts.html', {'json': json.dumps(data)})

这段代码的作用是模拟生成一组数据,然后将其传递给HTML文件,最后在HTML文件中使用ECharts库生成图表。

总结

本文介绍了Python如何制作报表,主要分为三个部分:导出Excel报表、导出PDF报表和生成前端统计图表。通过本文的介绍,相信读者已经了解了Python如何快速生成各种报表,并可以在实际开发中根据需要进行灵活应用。

用python制作报表相关推荐

  1. python制作报表

    背景 随着报表不断的变化,我们决定采用python进行开发.使用的库主要是mako.render 开发流程 设计模板Template 准备数据Data 通过mako.render将数据render到模 ...

  2. 用 Python 制作可视化报表,这也太快了!

    作者 | 小F 来源 | 法纳斯特 在数据展示中使用图表来分享自己的见解,是个非常常见的方法. 这也是Tableau.Power BI这类商业智能仪表盘持续流行的原因之一,这些工具为数据提供了精美的图 ...

  3. 用Python制作酷炫的可视化报表。

    在数据展示中使用图表来分享自己的见解,是个非常常见的方法. 这也是Tableau.Power BI这类商业智能仪表盘持续流行的原因之一,这些工具为数据提供了精美的图形解释. 当然了,这些工具也有着不少 ...

  4. Python办公自动化:制作报表并发送到邮箱

    大家好,我是辰哥(文末送书) 作为数据分析师,我们需要经常制作统计分析图表.但是报表太多的时候往往需要花费我们大部分时间去制作报表.这耽误了我们利用大量的时间去进行数据分析.但是作为数据分析师我们应该 ...

  5. 软件测试|Python操作Excel制作报表,不要太方便

    前言 今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能 插入与查询数据 分类数据统计 数据可视化 字体颜色修改 基本操作 表格初 ...

  6. python制作数据库报表_如何制作数据报表并实现自动化?

    定期的数据报表,包括日报.周报.月报.半年报.年报,是每一位数据运营或数据分析师可能遇到的工作,需求方主要包括产品运营部门和各业务部门.基于不同公司的不同发展阶段,遇到的报表工作"层次&qu ...

  7. 用Python自动化操作Excel制作报表,真的是太方便啦!!!

    今天小编来介绍一下如何用Python来操作Excel文件,当中需要用到的模块叫做openpyxl,其中我们会涉及到一些基本常规的操作,例如有 插入与查询数据 分类统计数据 数据的可视化 字体颜色的更改 ...

  8. python做报表汇总_python制作简单报表

    使用python制作一个简单的工作簿: ①导包 ( xlwt扩展包,用于excel的读取,实现表单和指定单元格的写入.) import xlwt ②创建工作簿 workbook = xlwt.Work ...

  9. 【实战篇】轻松用 Python 进行报表自动化

    大家好,今天给大家分享如何轻松用 Python 制作自动化报表,喜欢记得收藏.点赞.关注. ⚠️注意:文末提供技术交流群,完整版代码文末获取 本篇文章将带你了解报表自动化的流程,并教你用Python实 ...

最新文章

  1. Cisco PT模拟实验(19) 路由器的NAT功能配置
  2. Zaxis数据编程方法
  3. 简述C语言的标准发展,简述C语言的发展历史
  4. Qt网络编程——使用OpenCV与TCP搭建图像处理服务器
  5. Linux读写执行(RWX)权限
  6. python集合数据对象_python学习第七天 基础数据类型补充 深浅copy 集合 关键字后面加可迭代对象...
  7. winscp 自动断开无法连接_winscp教程,winscp教程,看完就学会的winscp教程
  8. Mybatis源码分析(一) JDBC Mybatis 简介
  9. 如何把avi转换为mp4?视频转换用嗨格式视频转换器
  10. java 类中 serialversionuid 作用
  11. matlab计算惯性矩,动力总成主惯性矩计算及扭矩轴(TRA)位置确定
  12. Python函数初识
  13. Markdown开发VSCode插件推荐
  14. word怎么压缩文件大小,word压缩变小
  15. win10如何进入BIOS
  16. Spring Boot打包成执行jar后获取classpath下文件异常解决
  17. Mysql语句商城系统表案例
  18. 理财通app的设计与实现(三)
  19. LinkedList面试要点总结
  20. matlab实现nc文件批量转tif文件

热门文章

  1. 企业私有云Owncloud(1)--介绍
  2. Bootstrap入门(一)
  3. 我的金工实习心得(二):铸工第一天
  4. 工业AI时代,大数据云平台未来5年迎最佳发展时机
  5. 299_S32K144 lptmr定时器使用
  6. 李兴华javase课堂笔记 所有
  7. 设备驱动模型之class
  8. 交房不验等于毁房!详细总结验房16项 别等开发商跑了才醒悟!
  9. c#程序操作文件进行压缩和解压
  10. 编写一个python程序用来计算投资回收期_计算该项目的投资回收期;