1. xlsxwriter模块介绍

  • xlsxwriter为Python第三方模块,用于向生成的Excel表格插入数据、图表等操作。
  • 安装:pip install xlsxwriter
  • 导入:import xlsxwriter

2. xlsxwriter的优缺点

  • xlsxwriter较其他模块支持更多的Excel功能
  • 100%兼容Excel xlsx文件,支持Excel 2003、Excel 2007等版本
  • xlsxwriter处理速度更快,支持大文件写入
  • 不支持修改Excel内容

3. xlsxwriter模块使用

3.1 写入文本、图片、超链接

import xlsxwriterwb = xlsxwriter.Workbook("data.xlsx")
# 创建sheet
sheet = wb.add_worksheet("newsheet")
# 写入
sheet.write(0, 0, "2021年度") # 写入单元格数据
sheet.merge_range(1, 0, 2, 2, "第一季度销售统计")
data = (["一月份", 500, 450],["二月份", 600, 550],["三月份", 650, 600]
)
sheet.write_row(3, 0, ["月份", "预期销售额", "实际销售额"])
# 写入数据
for index, item in enumerate(data):sheet.write_row(index+4, 0, item)
# 写入excel公式
sheet.write(7, 1, "=sum(B5:B7)")
sheet.write(7, 2, "=sum(C5:C7)")
sheet.write_url(9, 0, "http://www.baidu.com", string = "更多数据")
sheet.insert_image(10, 0, "4.jpg")  # 插入图片
wb.close()

执行效果:

3.2 写入格式化配置

import xlsxwriterwb = xlsxwriter.Workbook("data.xlsx")
# 设置格式的两种方法 1.钩子函数
cell_format = wb.add_format({'bold' : True})  # 创建格式对象
cell_format1 = wb.add_format()  # 格式对象
cell_format1.set_bold() # 设置加粗
cell_format1.set_font_color("red") # 设置文本字体颜色
cell_format1.set_font_size(14) # 设置字体大小
cell_format1.set_align("center") # 设置对齐方式 自动对齐
cell_format2 = wb.add_format() # 格式对象
cell_format2.set_bg_color("#808080") # 设置背景颜色# 创建sheet
sheet = wb.add_worksheet("newsheet")
# 写入
sheet.write(0, 0, "2021年度", cell_format) # 写入单元格数据
sheet.merge_range(1, 0, 2, 2, "第一季度销售统计", cell_format1)
data = (["一月份", 500, 450],["二月份", 600, 550],["三月份", 650, 600]
)
sheet.write_row(3, 0, ["月份", "预期销售额", "实际销售额"], cell_format2)
# 写入数据
for index, item in enumerate(data):sheet.write_row(index+4, 0, item)
# 写入excel公式
# write(self, row, col, *args)
sheet.write(7, 1, "=sum(B5:B7)")
sheet.write(7, 2, "=sum(C5:C7)")
# 插入超链接
sheet.write_url(9, 0, "http://www.baidu.com", string="更多数据")
sheet.insert_image(10, 0, "4.jpg")  # 插入图片
wb.close()

执行效果:

3.3 写入图表到Excel

import xlsxwriterwb = xlsxwriter.Workbook("data.xlsx")
# 设置格式的两种方法 1.钩子函数
cell_format = wb.add_format({'bold' : True})  # 创建格式对象
cell_format1 = wb.add_format()  # 格式对象
cell_format1.set_bold() # 设置加粗
cell_format1.set_font_color("red") # 设置文本字体颜色
cell_format1.set_font_size(14) # 设置字体大小
cell_format1.set_align("center") # 设置对齐方式 自动对齐
cell_format2 = wb.add_format() # 格式对象
cell_format2.set_bg_color("#808080") # 设置背景颜色# 创建sheet
sheet = wb.add_worksheet("newsheet")
# 写入
sheet.write(0, 0, "2021年度", cell_format) # 写入单元格数据
sheet.merge_range(1, 0, 2, 2, "第一季度销售统计", cell_format1)
data = (["一月份", 500, 450],["二月份", 600, 550],["三月份", 650, 600]
)
sheet.write_row(3, 0, ["月份", "预期销售额", "实际销售额"], cell_format2)
# 写入数据
for index, item in enumerate(data):sheet.write_row(index+4, 0, item)
# 写入excel公式
# write(self, row, col, *args)
sheet.write(7, 1, "=sum(B5:B7)")
sheet.write(7, 2, "=sum(C5:C7)")
# 插入超链接
sheet.write_url(9, 0, "http://www.baidu.com", string="更多数据")
sheet.insert_image(10, 0, "4.jpg")  # 插入图片# 写入
chart = wb.add_chart({'type' : 'column'})  # column:柱状图,line:折线图
chart.set_title({'name':'第一季度销售统计'})
# X Y 描述信息
chart.set_x_axis({'name':'月份'})
chart.set_y_axis({'name':'销售额'})
# 数据
chart.add_series({'name' : '预期销售额','categories' : '=newsheet!$A$5:$A$7', # 通过单元格标识获取数据'values' : ['newsheet', 4, 1, 6, 1],            # 通过索引获取'data_labels': {'value':True} # 显示数字
})
chart.add_series({'name' : '实际销售额','categories' : '=newsheet!$A$5:$A$7', # 通过单元格标识获取数据'values' : ['newsheet', 4, 2, 6, 2],             # 通过索引获取'data_labels': {'value':True} # 显示数字
})
sheet.insert_chart('A19', chart)
wb.close()

执行效果:


4. 综合实战:某培训机构就业数据分析

4.1 实现步骤

  • 步骤一:xlrd模块读取Excel数据
  • 步骤二:xlsxwriter模块生成就业数据图表
  • 步骤三:smtplib模块发送附件邮件
    • smtlip模块对smtp协议进行了封装,提供更便捷的方式发送电子邮件

4.2 综合实战:某培训机构就业数据分析

import xlrd
import xlsxwriter
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication# 1.读取
data = xlrd.open_workbook('info.xls')
classInfo = []
for sheet in data.sheets():dict = {'name':sheet.name, 'avgsalary':0} # 班级信息sum = 0 # 存储薪资for i in range(sheet.nrows):# 从第3行开始才是有用的数据if i > 1:sum += float(sheet.cell(i, 5).value) # 得到薪资数据dict['avgsalary'] = sum / (sheet.nrows-2)classInfo.append(dict)
print(classInfo)# 2.写入exccel
workbook = xlsxwriter.Workbook('newInfo.xlsx')
sheet = workbook.add_worksheet() # 创建工作表
# 写入班级数据
nameInfo = []
salaryInfo = []
for item in classInfo:nameInfo.append(item['name'])salaryInfo.append(item['avgsalary'])
sheet.write_column('A1', nameInfo)
sheet.write_column('B1', salaryInfo)
# 写入图表
chart = workbook.add_chart({'type':'column'})
# 标题
chart.set_title({'name':'平均就业薪资'})
# 数据源
chart.add_series({'name':'班级','categories':'=Sheet1!$A$1:$A$3','values':'=Sheet1!$B$1:$B$3',
})
sheet.insert_chart('A7', chart)
workbook.close()# 3.发送邮件
host_server = 'smtp.163.com' # 主机地址
# 发件人邮箱
sender = "xxx@163.com"
# 发件人邮箱密码、授权码
code = "123456"
# 收件人
user1 = "xxx@qq.com"
# 准备邮件数据
# 邮件标题
mail_title = "!!!1月份平均就业薪资"
# 内容
mail_content = "1月份平均就业薪资,请具体查看附件"
# 构建附件
attachment = MIMEApplication(open('newInfo.xlsx', 'rb').read())
attachment.add_header('Content-Disposition', 'attachment', filename='data.xlsx')# SMTP
smtp = smtplib.SMTP(host_server)
# 登录
smtp.login(sender, code)
# 发送
msg = MIMEMultipart() # 带附件的实例
msg['Subject'] = mail_title
msg['From'] = sender
msg['To'] = user1
msg.attach(MIMEText(mail_content))
msg.attach(attachment)
smtp.sendmail(sender, user1, msg.as_string())

info.xls:

执行效果:


课程地址:
https://www.imooc.com/learn/1239

Python 3——xlsxwriter生成图表相关推荐

  1. 使用python 处理表格生成图表_教你用Python自动读取数据生成图表,产生的效益很可观...

    厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...

  2. python 邮件中生成图表_60秒一口Python:147个demo,助你从新手小白步步进阶编程高手...

    人生苦短,编程苦手,不妨学起Python,感受一飞冲天的快乐. 不要害怕学习的过程枯燥无味,这里有程序员jackzhenguo打造的一份中文Python"糖果包":147个代码小样 ...

  3. python xlsxwriter库生成图表的应用

    xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外 还可以加上很形象的各种图,比如柱状图.饼图.折线图等. 请看本人生成的: 这 ...

  4. python根据excel生成报表_python生成Excel图表(通过xlsxwriter)

    前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xlsx ...

  5. python 生成图表

    python写入excel(xlswriter)--生成图表 折线图 # -*- coding:utf-8 -*-import xlsxwriter# 创建一个excel workbook = xls ...

  6. python写入excel表格数据绘制图表,Python对数据写入Execl文件并生成图表

    Python对数据写入Execl文件并生成图表 需求: 为了做测试或者对爬虫程序爬取数据进行分析汇总,我们时常会将数据生成报表,但是如果我们想将报表生成在Excel中,这时候就可以借助xlsxwrit ...

  7. python读excel表格数据绘制图表_Python读取Excel数据生成图表 v2.0

    原博文 2020-06-15 15:09 − ## Python读取Excel数据生成图表 v2.0 ## 一.需求背景 自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表.以前一直是用 ...

  8. python批量生成图表_教你用Python自动读取数据生成图表,产生的效益很可观

    厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...

  9. python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...

    这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...

  10. python生成折线图-python 生成图表

    # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_pie. ...

最新文章

  1. 经典的导航二级式导航菜单增强版
  2. HBase scan setBatch和setCaching的区别
  3. 十大经典排序算法动画与解析,看我就够了
  4. mysql超详细教程_MySQL8.0.23安装超详细教程
  5. 平述factory reset ——从main system到重引导流程
  6. 如何在 SAP BTP 平台上重用另一个已经开发好的 service
  7. 9.23 基础知识
  8. 微软将取缔 8 亿 Windows 10 用户的密码!
  9. 在react开发过程中由于setState的异步特性,获取最新state遇到问题
  10. 《Java就业培训教程》_张孝祥_书内源码_08
  11. 升级JUnit5及其特性介绍
  12. AI带你走进P图新时代
  13. 【杂谈】从零开始组建团队开发一款APP的人力成本以及时间成本解析
  14. R语言 表达式对象的求值 eval
  15. 渠道、数据、技术,谁才是网络信贷市场的决胜因素?
  16. Nexus 搭建docker本地仓库(hosted)和私有仓库(proxy)
  17. matplotlib模拟重力场中粒子的分布
  18. 23、实时汇率API接口,免费好用
  19. Nginx反向代理服务器高速缓存数据结构的部分实现
  20. Appium APP UI自动化测试框架介绍

热门文章

  1. 计算机系统C盘会还原,怎么还原电脑C盘的初始状态
  2. 前端页面点击姓名查看详情
  3. 网页鼠标动态线条html5,网站动态背景线条跟随鼠标移动,吸附鼠标效果代码
  4. Clang checker类总结
  5. mui如何对接java后台_MUI框架-09-MUI 与后台数据交互
  6. dB,dBm W之换算关系
  7. 一小时搞定 简单VBA编程 Excel宏编程快速扫盲
  8. Linux修改网络配置
  9. 最全编程开发常用单词词汇
  10. 【NetFlow】NetFlow V9协议详细分析