Python学习的自我理解和想法(24)

举报
Pocker_Spades_A 发表于 2024/12/06 08:06:24 2024/12/06
【摘要】 Python轻松实现办公自动化之openpyxl插件

学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码!

今天是学Python的第24天,学的内容是python对Excel的操作。开学了,时间不多,写得不详细,见谅。

目录

1.插件介绍

2.安装 openpyxl

3.读取Excel文件内容

(1).加载一个工作簿

(2).获取工作表名称

(3).获取具体的工作表

(4).获取单元格的范围

(5).获取工作表的行数和列数

(6).获取指定单元格的值

(7).获取多个单元格的数据

1.enumerate( )方法

2. 双层循环

(8).读取单元格中所有的数据

4.写入Excel文件

(1).创建工作薄

(2).添加工作表

(3).保存工作簿

(4).结果

5.插入图表

(1).导入模块

(2).创建对象

(3).创建一个工作表

(4).导入数据(元组形式导入)

(5).向表单中添加行

(6).创建图片对象

(7).设置图表的标题

(8).设置图表标题

(9).设置数据的范围

(10).设置分类的范围

(11).给图表添加数据

(12).给图表设置分类

(13).将图标插入到工作表中指定的单元格

(14).保存

(15).总代码

(16).演示

总结


1.插件介绍

这章介绍的是openpyxl插件。openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它提供了一系列简单易用的函数和方法,让我们可以轻松地操作 Excel 文件,包括读取、写入、修改单元格内容、设置格式等。

2.安装 openpyxl

在使用 openpyxl 之前,我们需要先安装它。可以通过以下命令使用 pip 进行安装:

3.读取Excel文件内容

(1).加载一个工作簿

语法:openpyxl.load_workbook

(2).获取工作表名称

语法:wb.sheetnames

(3).获取具体的工作表

语法:wb.worksheets[0]

(4).获取单元格的范围

语法:sheet.dimensions

(5).获取工作表的行数和列数

语法:sheet.max_row,sheet.max_column

(6).获取指定单元格的值

语法:sheet['XX'].value

(7).获取多个单元格的数据

1.enumerate( )方法

注意:用enumerate包装一迭代对象,可以同时使用索引和迭代项,在迭代的同时获得迭代项所在的位置时,才能使结果不是元组!

2. 双层循环

(8).读取单元格中所有的数据

4.写入Excel文件

(1).创建工作薄

语法:openpyxl.Workbook()

(2).添加工作表

# 第二步:添加工作表
sheet = wb.active
sheet.title = "笔试成绩"
titles = ["姓名","骑马","射箭","举重"]
for col_index,title in enumerate(titles):
    sheet.cell(1,col_index+1,title)
names = ("魏延","吕布","许褚","夏侯惇","黄盖")
 
for row_index,name in enumerate(names):
    sheet.cell(row_index+2,1,name)
    for col_index in range(2,5):
        sheet.cell(row_index+2,col_index,random.randrange(50,101))

(3).保存工作簿

wb.save("../pycharm测试文件/test64附件-三国擂台赛成绩.xlsx")

(4).结果

5.插入图表

(1).导入模块

# 导入模块
from openpyxl import workbook
from openpyxl.chart import BarChart, Reference  # 画图
from openpyxl.workbook import Workbook

(2).创建对象

wb = Workbook(write_only=True)

(3).创建一个工作表

sheet = wb.create_sheet()

(4).导入数据(元组形式导入)

rows = [
    ('类别','销售A组','销售B组'),
    ('手机',40,30),
    ('平板电脑',50,60),
    ('笔记本',80,70),
    ('VR眼镜',20,10)
]

(5).向表单中添加行

for row in rows:
    sheet.append(row)

(6).创建图片对象

chart = BarChart()
chart.type = 'col'
chart.style = 10

(7).设置图表的标题

chart.title = "销售统计图"

(8).设置图表标题

# 设置图表纵轴的标题
chart.y_axis.title = "销量"
# 设置图表横轴的标题
chart.x_axis.title = "商品类别"

(9).设置数据的范围

data = Reference(sheet, min_col=2, min_row=1, max_row=5,max_col=3)

(10).设置分类的范围

cats = Reference(sheet, min_col=1, min_row=2, max_row=5)

(11).给图表添加数据

chart.add_data(data,titles_from_data=True)

(12).给图表设置分类

chart.set_categories(cats)
chart.shape = 4

(13).将图标插入到工作表中指定的单元格

sheet.add_chart(chart,'A10')

(14).保存

wb.save('../pycharm测试文件/test66附件-销量统计表.xlsx')

(15).总代码

# 导入模块
from openpyxl import workbook
from openpyxl.chart import BarChart, Reference  # 画图
from openpyxl.workbook import Workbook
 
# 创建对象
wb = Workbook(write_only=True)
# 创建一个工作表
sheet = wb.create_sheet()
 
# 导入数据(元组形式导入)
rows = [
    ('类别','销售A组','销售B组'),
    ('手机',40,30),
    ('平板电脑',50,60),
    ('笔记本',80,70),
    ('VR眼镜',20,10)
]
 
# 向表单中添加行
for row in rows:
    sheet.append(row)
 
# 创建图片对象
chart = BarChart()
chart.type = 'col'
chart.style = 10
# 设置图表的标题
chart.title = "销售统计图"
# 设置图表纵轴的标题
chart.y_axis.title = "销量"
# 设置图表横轴的标题
chart.x_axis.title = "商品类别"
# 设置数据的范围
data = Reference(sheet, min_col=2, min_row=1, max_row=5,max_col=3)
# 设置分类的范围
cats = Reference(sheet, min_col=1, min_row=2, max_row=5)
# 给图表添加数据
chart.add_data(data,titles_from_data=True)
# 给图表设置分类
chart.set_categories(cats)
chart.shape = 4
# 将图标插入到工作表中指定的单元格
sheet.add_chart(chart,'A10')
 
wb.save('../pycharm测试文件/test66附件-销量统计表.xlsx')

(16).演示

总结 

这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。