使用Python的模块openpyxl操作EXCEL

使用Python的模块openpyxl操作EXCEL

 

Python操作Excel需要使用模块(也称为库),在此介绍openpyxl模块的使用。请安装好该模块,在cmd中输入:

pip install openpyxl

 

【查看python第三方模块(库、包)是否安装及其版本号

在cmd中输入python -m pip list 或 pip list】

 

openpyxl基本语法介绍

模块导入:

from openpyxl 

from openpyxl import Workbook

创建一个Excel工作簿:

wb = Workbook().save("example.xlsx")

Workbook对象是一个用来创建一个工作簿,save方法用来将这个对象保存成一个文件。

可以查看一下,程序执行的目录下是不是出现了一个example.xlsx文件。这时,是一个全新的文件,里面只有一张默认的表。

 

读取一个Excel工作簿(workbook):

即读取已存在的xlsx文件,使用openpyxl中的load_wordbook()方法。示例代码如下:

from openpyxl import load_workbook  

wb = load_workbook("example.xlsx")  

 

获取Excel工作表的最大列和最大行
row = ws.max_row    # 获取表中的最大列
column = ws.max_column    # 获取表中的最大行

 

使用wb的sheetnames属性来获取文件中的所有工作表的名字,:

wb.sheetnames # ['Sheet']

当我们打开一个Excel表格,会看到上次我们保存的表。这个表是活动状态的。我们可以使用Workbook对象中的active属性来获取当前活跃的工作表(Worksheet)。

ws = wb.active

ws就是我们要操作的表了。

访问ws的title属性,可以获取或修改表名。

ws.title # 'Sheet'

ws.title = "demo"

使用title给这张表重命名。

 

按名字读取Excel中的表(使用Workbook对象的wb["sheet_name"]方法选定工作表):

ws = wb["sheet_name"]

按Excel中的表的顺序读取Excel中的表:

ws = wb[wb.sheetnames[0]]    # 读取Excel里的第一张表

 

删除一张表,使用Workbook中的remove_sheet()方法:

wb.remove_sheet(ws1)

 

复制一张表,使用Workbook中的copy_worksheet()方法:

ws2 = wb.copy_worksheet(ws)

wb.sheetnames # ['demo', 'demo Copy']

 

操作单元格

每个单元格都是一个Cell对象。

访问单元格,需要使用坐标,坐标的表示方式有两种,一种是使用字符串,如‘A1’,表示的是第一列,第一行。。另一种就是使用标准得坐标如,column=1, row=1,利用ws中的cell方法来第一行第一列的单元格。访问单元格的方式是使用如ws['A1'], 即表变量[坐标]

ws['A1'] = 0

ws.cell(row=1, column=1, value=0)

多单元格访问

ws['A1':'C2']

ws['C:D']

 

 

向表中写入大量数据

for i in range(1, 20):

    for j in range(1, 20):

        ws.cell(i,j,value=i*j)

需要注意的是,使用cell时,坐标至少是1,也就是说,大于0的整数。

 

合并、拆分单元格

ws.merge_cells('A1:B2')    # 合并单元格

ws.unmerge_cells('A1:B2')    # 拆分单元格

 

保存Excel文件,下句在当前目录保存Excel文件,文件名为example.xlsx ,如果已存在将替换之

wb.save("example.xlsx")

 

 

例1、运行下面的代码将本源码文件(ExcelTest.py)所在的目录中生成名为test.xlsx的文件

#模块导入

import openpyxl

from openpyxl import Workbook

#创建一个workbook对象,含有一个工作表可以active

wb=Workbook()

#读取这张表

ws = wb.active

#创建sheet名字 

ws.title = 'sheet1'

#为A1单元格赋值

ws['A1']='圆周率'

ws['A2']=3.14

#添加一个工作表

ws2=wb.create_sheet(title="Data")

#选定工作表

ws3 = wb["Data"]

#为单元格赋值

ws3['A1']='呵呵'

#在当前目录保存文件,文件名为test.xlsx ,如果已存在将替换之

wb.save( 'test.xlsx')

 

运行结果参见下图:

 

Openpyxl官网文档(英文):

https://openpyxl.readthedocs.io/en/stable/index.html

 

使用openpyxl进行图表处理的例子

https://openpyxl.readthedocs.io/en/stable/charts/bar.html

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值