excel操作模块Openpyxl

openpyxl简介

openpyxl模块是用于读取/写入excel xlsx/xlsm文件的Python库。

openpyxl模块安装

在终端输入:'pip install openpyxl'

excel文档的基本定义

(1)工作簿(workbook):一个excel文件就称为一个工作簿
(2)工作表(sheet):工作簿中每一张表格称为工作表
(3)活动表(active sheet):指当前正在操作的工作表
(4)行(row):工作表中的每一行(1,2,3,4…65536)
(5)列(column):工作表中的每一列(1,2,3,4…256)
(6)单元格(cell):工作表中的每一个格

对excel基本操作

1.创建工作簿

(1)创建一个名为test.xlsx文件
(2)在工作簿上新建一个名为”test“的sheet页
(3)保存创建的工作簿
(4)关闭该文件

# 导入openpyxl模块
from openpyxl import Workbook
# 创建一个工作簿对象
wb = Workboot()
# 在索引为0的位置创建一个名为test的sheet页
ws = wb.create_sheet('test',0)
# 将创建的工作簿保存为test.xlsx文件
wb.save('test.xlsx')
# 关闭该文件
wb.close()

2.获取工作簿信息

(1)加载已有的工作簿
(2)获取sheet页
(3)获取工作簿的属性(包括):
1)sheetnames
2)actvie:当前活跃的worksheet
3)read_only:判断是否以read_only模式打开excel文档
4)encoding:获取文档的字符集编码
5)properties:获取文档的元数据,如标题、创建者,创建日期等。

import openpyxl
# 加载工作簿
wb = openpyxl.load_workbook('text.xlsx')
# 获取sheet页
ws1 = wb['test']
ws2 = wb.get_sheet_by_name('test')

#获取sheet页名称
sheetname = wb.sheetnames
#获取当前活跃的worksheet
activeSheet = wb.active
# 获取是否以read_only模式打开excel文档
isRead_Only = wb.read_only
#获取文档的字符集编码
get_encoding = wb.encoding
# 获取文档的元数据
get_properties = wb.properties

访问单元格

(1)访问单个单元格如A1:

#两种方式
cell_1 = ws1['A1']
cell_2 = ws1.cell(row=1,column=1)

(2)获取单元格内容:.value即可:

value_1 = ws1['A1'].value
value_2 = ws1.cell(row=1,column=1).value

(3)给单元格赋值:

ws1['A1'].value = '给excel的A1表格赋值'
ws1.cell(row=1,column=1).value='给excel的A1表格赋值'

对于给多个单元格的设置可以借助于for循环。
注意:设置后要保存工作簿,否则没有效果。

(4)多个单元格操作:

①使用列表切片

#访问A1~C3范围内的单元格
get_A1toC3=ws1['A1':'C3']

#访问A列所有存在数据的单元格
get_Acluomn = ws1['A']

#访问A列到C列所有存在数据的单元格
get_AcolumnToCcolumn = ws1['A:C']

#访问第一行所有存在数据的单元格
get_thefirstColumn = ws1[1]

#访问第1行至第5行所有存在数据的单元格
date = w1.[1:5]

②for循环访问多个单元格:

#按照行来先输出
for row in ws1.iter_rows(min_row=1,max_col=2,max_row=2):
	for cell in row:
		print(cell)
#输出:
<Cell 'test'.A1>
<Cell 'test'.B1>
<Cell 'test'.A2>
<Cell 'test'.B2>

#按照列来先输出
for col in ws1.iter_cols(min_row=1,max_col=2,max_row=2):
	for cell in col:
		print(cell)
#输出:
<Cell 'test'.A1>
<Cell 'test'.A2>
<Cell 'test'.B1>
<Cell 'test'.B2>

注意:
使用openpyxl保存文件的时候,文件是默认替换的!

对excel中格式与内容的修改

背景:批量修改某个文件夹中所有文档的格式或内容,将一系列(模板相同)的所有文档放入一个文件夹中(./case)

第一步:获取case文件夹中所有文件名
import os
#获取所运行脚本的绝对路径
script_path = os.getcwd()
#得到需要修改的文档的绝对路径
case_path = script_path + '\case'
#获取文件夹中所有文档的名称
Excel_Name = os.listdir(case_path)
第二步:对excel进行操作
1.加载工作簿并获取此excel中所有sheet页的名称
for case in Excel_Name :
	#加载excel
	wb = openpyxl.load_workbook(r'%s'%case_path+r'\%s'%case)
	#获取sheet页所有名称
	All_Sheet = wb.sheetnames
2. 修改某个sheet页中某个单元格的内容
#接上一步
	#获取该sheet页
	sheet1 = wb('%s'%All_Sheet[0])
	#修改sheet1中A9的内容
	sheet1['A9'].value = '修改成功啦!'
3.修改某个单元格的边框样式
	#接上一步,修改sheet1 B2:E2单元格的边框样式
	 sheet1['B2:E2'].border = Border(top=Side(style='thick',color=colors.BLACK),
	 left=Side(style='thick',color=colors.BLACK),
	 right=Side(style='thick',color=colors.BLACK),
	 bottom=Side(style='thick',color=colors.BLACK))
4.删除某个单元格的行
	#接第二步中的步骤2:删除sheet1中的第8和9行
	sheet1.delete_rows(8,9)
5.隐藏某个单元格的列
	#接第二步中的步骤2:隐藏sheet1中的第E和K列
	sheet1.column_dimension.group('K','E',hidden=True)

未完待续…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值