python进行excel 文件处理

这篇博客介绍了如何使用Python的openpyxl模块进行Excel文件处理,包括创建Workbook,赋值给单元格,追加行,转换Python类型,保存文件,复制工作表,访问和修改单元格数据,以及遍历行和列。示例代码详细展示了各种操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在cmd 中安装第三方模块

#pip install openpyxl

#import openpyxl
#openpyxl.Workbook() #创建workbook

from openpyxl import Workbook

#wb = Workbook()

grab the active worksheet

#ws = wb.active

Data can be assigned directly to cells

#ws[‘A1’] = 42

Rows can also be appended

#ws.append([1, 2, 3])

Python types will automatically be converted

import datetime
#ws[‘A2’] = datetime.datetime.now()

Save the file

#wb.save(“sample.xlsx”)
from openpyxl import Workbook
wb=Workbook( ) #创建工作簿 自建 一个sheet 工作表
#创建工作表
ws=wb.active #获取当前排行老一的第一个工作表
wb.create_sheet(‘Mysheet1’) #默认名称为sheet1,递增
<Worksheet “Mysheet1”>
ws2=wb.create_sheet(‘Mysheet2’,0) #插在最前边
#修改工作表名

ws.title=‘title’
ws.sheet_properties.tabColor=‘1072BA’ #设置工作表按键颜色
查看工作表名
#查看工作薄中的所有工作表 list
wb.sheetnames #查看工作薄中的所有工作表 list
[‘Mysheet2’, ‘title’, ‘Mysheet1’]
for sheet_name in wb.sheetnames: #查看工作薄中的所有工作表 list,
print(sheet_name)
Mysheet2
title
Mysheet1
for sheet in wb: #查看工作薄中的所有工作表 list ,循环wb工作薄
print(sheet.title) #遍历出每个工作表对象,通过title属性获取工作表名
Mysheet2
title
Mysheet1

复制工作表

source=wb.active
targer
targer=wb.copy_worksheet(source) #复制工作表
targer.title
‘Mysheet2 Copy1’
wb.copy_worksheet??
注意:
1.有的属性是不可复制的,比如excel表格中的图片或图表是不可复制的 2.工作薄只在只读或只写模式下打开,也是不可复制工作表的

访问单元格数据

ws[“A1”]
<Cell ‘title’.A1>
ws[‘A1’]=‘name’ #单元格A1赋值为name
通过方法赋值
n
#ws.cell??
ws.cell(row=15,column=1,value=5) # A15 赋值为5
<Cell ‘title’.A15>

第1行输入1,第2行输入2…

语法:
i=0
r=0
for i in range(1,10):
for r in range(1,10):
ws.cell(row=i,column=r,value=i)
访问多个单元格

访问多个单元格

语法:
cell_range=ws[‘A1’:‘C2’] #访问 A1,B1,C1,A2,B2,C2
colC=ws[‘C’]
colC=ws[‘C’] #获取C列
col_range=ws[‘C:D’] #获取C,D两列
row9=ws[9] #访问第9行
row9=ws[9] #访问第9行
row9

#row_range=ws[5:9] #访问第5行 到 第9行
row_range=ws.iter_rows(min_row=1,max_row=2,max_col=3)
row_range=ws.iter_rows(min_row=1,max_row=2,max_col=3) #获取多行数据
#list(row_range)
for row in row_range: #先获取到1,2行对象,从1,2行对象中遍历单元格
for cell in row:
print(cell)
for row in row_range: #先获取到1,2行对象,从1,2行对象中遍历单元格
for cell in row:
print(cell)
ws.iter_cols(min_row=1,max_row=2,max_col=3)
col_range=ws.iter_cols(min_row=1,max_row=2,max_col=3) #获取多行数据
#list(row_range)
for col in col_range: #先获取到1,2行对象,从1,2行对象中遍历单元格
for cell in col:
print(cell)
<Cell ‘title’.A1>
<Cell ‘title’.A2>
<Cell ‘title’.B1>
<Cell ‘title’.B2>
<Cell ‘title’.C1>
<Cell ‘title’.C2>

注意:wb.iter_cols()在只读模式下不可用

文件所有行或列

如果需要遍历文件所有行或列

#访问顺序是一行一行访问
ws.rows #生成器
tuple(ws.rows) #访问顺序是一行一行访问
ws.columns#生成器
tuple(ws.columns) #访问顺序是一列一列访问
访问单元格的值

访问单元格的值

#ws.values #获取ws对象中的单元格值, 生成器
for row in ws.values:
for row in row_range:
print(row)

row
row_range=ws.iter_rows(min_row=1,max_row=2,max_col=3,values_only=True)
for row in row_range: #先获取到1,2行对象,从1,2行对象中遍历单元格
print(row)

(1, 1, 1)
(2, 1, 2)
赋值

单元格进行赋值

语法:
a1=ws[‘A1’]
a1.value
a1.value
a1.value=“hello”
a1.value
‘hello’
#加载 文件

2
from openpyxl import load_workbook
wb2=load_workbook(‘test4.xlsx’)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值