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

简介: 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")

 

结果:

控制台输出:

目录
相关文章
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
454 5
|
数据处理 索引 Python
用Python实现数据录入、追加、数据校验并生成表格
本示例展示了如何使用Python和Pandas库实现学生期末考试成绩的数据录入、追加和校验,并生成Excel表格。首先通过`pip install pandas openpyxl`安装所需库,然后定义列名、检查并读取现有数据、用户输入数据、数据校验及保存至Excel文件。程序支持成绩范围验证,确保数据准确性。
888 14
|
12月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
1110 7
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
3074 10
|
12月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
955 0
|
移动开发 JavaScript
(H5查看CAD)网页CAD提取图纸表格到excel
本文介绍如何通过自定义MxCAD插件,在Web端智能识别CAD图纸中的表格,实现自动合并与高效导出至Excel,提升数据提取效率与准确性。内容涵盖区域选择、图形识别、表格结构重建、单元格合并及内容导出等关键技术,适用于工程图纸数据自动化处理场景。
|
开发工具 Python
使用Python和OpenAPI将云上的安全组规则填写入Excel
本文介绍如何通过Python脚本自动化获取阿里云安全组及其规则信息,并将结果导出为Excel表格。相比CLI命令行方式,Python实现更高效、便捷,适用于需要批量处理和交付的场景。
使用Python和OpenAPI将云上的安全组规则填写入Excel
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析,别再死磕Excel了!
Python数据分析,别再死磕Excel了!
575 2
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
3058 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本

推荐镜像

更多