Python 利用Python操作excel表格之openyxl介绍Part2

简介: Python 利用Python操作excel表格之openyxl介绍Part2

利用Python操作excel表格之openyxl介绍

by:授客QQ1033553122

欢迎加入全国软件测试交流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列到第列(包括第210),第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" # 可选值:autoZerominmax
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总是获取索引为0Sheet
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")

 

结果:

控制台输出:

目录
相关文章
|
15天前
|
数据处理 索引 Python
用Python实现数据录入、追加、数据校验并生成表格
本示例展示了如何使用Python和Pandas库实现学生期末考试成绩的数据录入、追加和校验,并生成Excel表格。首先通过`pip install pandas openpyxl`安装所需库,然后定义列名、检查并读取现有数据、用户输入数据、数据校验及保存至Excel文件。程序支持成绩范围验证,确保数据准确性。
59 14
|
23天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
1月前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
136 5
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
112 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
SQL 数据可视化 数据挖掘
想让Excel表格设计更美观?试试这几款好用工具!
Excel表格设计在项目管理和数据分析中至关重要。本文推荐四款辅助工具:板栗看板、Excel自动图表助手、Think-Cell Chart 和 Power BI,分别在任务管理、图表生成、数据可视化等方面表现突出,帮助你设计出更专业、美观的表格。
76 2
|
20天前
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
32 0
|
2月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
110 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
2月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
110 6
|
2月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
68 2
|
2月前
|
Python
Python 自动化操作 Excel - 02 - xlwt
Python 自动化操作 Excel - 02 - xlwt
45 14