Python 利用Python操作excel表格之openyxl介绍Part2
利用Python操作excel表格之openyxl介绍
by:授客 QQ:1033553122
欢迎加入全国软件测试交流qq群(群号:7156436)
## 绘图
c
= LineChart()
# 设置图标类型:LineChart 连线图
AreaChart 面积图
c.title
= 'CPU利用率'
# 设置生成图的报告名称
c.style
= 10
# 设置图例样式
c.y_axis.title
= '百分比'
# 设置 Y 轴名称
c.x_axis.title
= '时间'
# 设置 X 轴名称
c.y_axis.scaling.min
= 0
# 设置y轴坐标最的小值
c.y_axis.majorUnit
= 10
# 设置主y轴坐标,两个“坐标刻度”直接的间隔
c.y_axis.scaling.max
= 100
# 设置主y轴坐标的最大值
# 设置 data引用数据源:第2列到第列(包括第2,10列),第1行到第30行,包括第1,
30行
data
= Reference(sheet, min_col=2, max_col=10, min_row=1, max_row=30)
c.add_data(data, titles_from_data=True)
# 设置x轴
坐标值,即轴标签(Label)(从第3列,第2行(包括第2行)开始取数据直到第30行(包括30行))
x_labels
= Reference(sheet, min_col=1, min_row=2, max_row=30)
c.set_categories(x_labels)
c.width
= 18
# 设置图表的宽度
单位 cm
c.height
= 8 # 设置图表的高度
单位 cm
# 设置插入图表位置
cell
= "A10"
sheet.add_chart(c,
cell)
# 绘制双y坐标轴图表
sheet
= work_book['DEV']
c1
= AreaChart()
#
面积图
c1.title
= '磁盘活动统计报告'
c1.style
= 10
#
10 13 11
c1.y_axis.title
= '平均时长(毫秒)'
c1.x_axis.title
= '时间'
c1.y_axis.majorGridlines
= None
first_row
= [] # 存储第一行记录
# 获取第一行记录
for row in sheet.rows:
for cell in row:
first_row.append(cell.value)
break
# 拼接系列的方式
target_columns
= ['await', 'svctm']
for target_column in target_columns:
index
= first_row.index(target_column)
ref_obj
= Reference(sheet, min_col=index
+ 1, min_row=2, max_row=300)
series_obj
= Series(ref_obj, title=target_column)
c1.append(series_obj)
x_labels
= Reference(sheet, min_col=1, min_row=2, max_row=300)
c1.set_categories(x_labels)
c1.width
= 18
c1.height
= 8
c2
= LineChart()
c2.y_axis.title
= '磁盘利用率'
c2.y_axis.scaling.min
= 0
# 设置y轴坐标最的小值
#c2.y_axis.majorUnit
= 5
# 设置主y轴坐标的坐标单位
c2.y_axis.scaling.max
= 100
# 设置主y轴坐标的最大值
ref_obj
= Reference(sheet, min_col=8, min_row=2, max_row=300)
series_obj
= Series(ref_obj, title='%util')
c2.append(series_obj)
s
= c2.series[0] # 获取添加第一个系列
# 设置线条填充颜色,也是图例的颜色
s.graphicalProperties.line.solidFill
= "DEB887"
# 设置线形
可选值如下:
#
['solid', 'dot', 'dash', 'lgDash', 'dashDot', 'lgDashDot',
'lgDashDotDot', 'sysDash', 'sysDot',
'sysDashDot','sysDashDotDot']
s.graphicalProperties.line.dashStyle
= "sysDot"
s.graphicalProperties.line.width
= 50000 # 设置线条宽度(单位:EMUs
s.smooth
= True # 设置平滑线条
# 设置第二个图表的y轴同x轴的交叉点为最大值 max,以便让其y轴靠图表最右侧展示
c2.y_axis.crosses
= "max" # 可选值:autoZero、 min、 max
c2.y_axis.axId
= 200
# 我也不知道做啥用,反正不能少,值固定200就可以了
c1
+= c2
sheet.add_chart(c1, "A2")
work_book.save('./new_mydata.xlsx') # 保存、另存为工作簿
结果:



#
新建工作簿
#
http://openpyxl.readthedocs.io/en/stable/tutorial.html#create-a-workbook
work_book
= Workbook()
# 注:新建工作簿时会自动创建一个Sheet工作表,可通过如下方式获取默认新建的Sheet表,
#
work_book.active总是获取索引为0的Sheet表
sheet
= work_book.active
# 插入一个新的Sheet表到最前面
mysheet1
= work_book.create_sheet(title='MySheet1', index=0)
# 在最后面增加一个Sheet表
mysheet2
= work_book.create_sheet(title='MySheet2')
# 修改Sheet工作表的名称
mysheet2.title
= 'Sheet3'
# 修改sheet标签颜色
mysheet2.sheet_properties.tabColor
= "1072BA"
sheet.row_dimensions[1].height
= 7
# 设置行高
单位 cm( 第一行行高7cm
sheet.column_dimensions['A'].width
= 14
# 设置列宽
单位 cm(
A列列宽设置为14cm
# 复制Sheet工作表
sheet4
= work_book.copy_worksheet(mysheet2)
rows
= [
['Aliens', 2, 3, 4, 5, 6, 7],
['Humans', 10, 40, 50, 20, 10, 50],
]
# 新增数据
for row in rows:
sheet4.append(row)
work_book.save("secondary.xlsx")
结果:



控制台输出:


Python 利用Python操作excel表格之openyxl介绍Part2的更多相关文章
- Python 利用Python操作excel表格之openyxl介绍Part1
利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...
- Python 利用Python操作excel表格之xlwt介绍
利用Python操作excel表格之xlwt介绍 by:授客 QQ:1033553122 直接上代码 案例1 #!/usr/bin/env python # -*- coding:utf-8 ...
- Python利用xlutils统计excel表格数据
假设有像上这样一个表格,里面装满了各式各样的数据,现在要利用模板对它进行统计每个销售商的一些数据的总和.模板如下: 代码开始: 1 #!usr/bin/python3 2 # -*-coding=ut ...
- C++中利用libxl操作Excel表格
libxl是一款操作excel的商业库,支持C.C++.C#和Delphi.下文利用libxl在C++中实现了从excel文档的表1中随机挑选记录,保存到新建的表中.以下为代码: #include & ...
- Python使用openpyxl操作excel表格
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ht ...
- 用NPOI、C#操作Excel表格生成班级成绩单
在C#中利用NPOI操作Excel表格非常方便,几乎上支持所有的Excel表格本身所有的功能,如字体设置.颜色设置.单元格合并.数值计算.页眉页脚等等. 这里准备使用NPOI生成一个班级成绩单Exce ...
- 【转】python操作excel表格(xlrd/xlwt)
[转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...
- 转载:python操作excel表格(xlrd/xlwt)
python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而 ...
- python - 操作excel表格
说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...
随机推荐
- shell 中的单行注释和多行注释
1. 单行注释 众所周知,# 比如想要注释:echo “ni” # echo "ni" 2. 多行注释: 法一: : << ! 语句1 语句2 语句3 语句4 ! 例 ...
- CMake设置编译参数
项目中的CMake编译参数一直参照Muduo进行设置. Muduo的CMakeLists.txt中,MAKE_CXX_FLAGS设置较为清晰明了,因此一直在项目中沿用. set(CXX_FLAGS - ...
- 解读JavaScript 之引擎、运行时和堆栈调用
转载自开源中国 译者:Tocy, 凉凉_, 亚林瓜子, 离诌 原文链接 英文原文:How JavaScript works: an overview of the engine, the runtim ...
- JavaScript逗号操作符
今天在CSDN看到一篇文章http://www.csdn.net/article/2014-01-06/2818025-Useful-JavaScript-Tips-Best-Practices?re ...
- Docker 镜像、容器、仓库的概念及基本操作
Docker 包括三个基本概念: 镜像(Image)容器(Container)仓库(Repository) 这三部分组成了Docker的整个生命周期,如下图所示,容器是由镜像实例化而来的,这和我们学习 ...
- MySQL数据库事务详解
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- Spring Cloud Gateway中异常处理
最近我们的项目在考虑使用Gateway,考虑使用Spring Cloud Gateway,发现网关的异常处理和spring boot 单体应用异常处理还是有很大区别的.让我们来回顾一下异常. 关于异常 ...
- 记一次安装Ipython的流程
这是一个悲伤的安装ipython的过程. 写下来留个教训吧. 也是希望对博友一些帮助吧. 注: 我也写了一篇window下安装bpython的文章(个人感觉bpython要比ipython强大的多), ...
- ES6躬行记(8)——数字
一.进制 ES6不仅完善了数字的八进制形式,还补充了一种十六进制形式,并且添加了全新的二进制形式.下面的三个变量分别表示八进制.十六进制和二进制的10,注释中给出了该进制的另一种写法. var oct ...
- (void) (&_x == &_y)的作用
如果有下面这段代码: #define min(x, y) ({ \ const typeof(x) _x = (x); \ const typeof(y) _y = (y); \ (void) (&a ...