这篇文案重点介绍了python运用openpyxl操作excel的办法过程,仔细的介绍了openpyxl的常用属性以及操作excel的办法,感兴趣的能够认识一下
一 前言
放大招了,学完这篇openpyxl第三方库,读者将会懂得怎样灵活的读取excel数据,怎样创建excel工作表;更新工作表,删除工作表;是不是感觉很强大,留下赞赞吧!!
二 openpyxl常用属性函数
三 读取excel
读取整体流程如下 加载工作本获取标签页获取指定区域的单元格获取单个单元格对象经过单元格对象获取值3.1 准备工作
创建一个名为zszxz.xlsx excel文件;其中标签sheet名为zszxz; 列A B C 如下; id num name
1 100 zszxz
2 101 smile
3 102 kitty
4 103 wolf
5 104 cloud
6 105 water
3.2 安装
支持操作excel和图像 pip install openpyxl
pip install pillow
3.3 获取所有标签页名叫作 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 得到所有标签页sheet_names = workbook.get_sheet_names()
print(sheet_names)输出
[zszxz]
正确的获取方式 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本workbook = openpyxl.load_workbook(path)# 得到所有标签页名叫作
print(workbook.sheetnames)3.4 获取指定标签页对象
不意见经过办法得到标签页对象,意见经过属性方式获取; # -*- coding: utf-8 -*-
importopenpyxl
path =rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 得到指定的sheet
sheet = workbook.get_sheet_by_name(zszxz)
print(sheet)输出
<Worksheet "zszxz">
正确的获取方式
# -*- coding: utf-8 -*-import openpyxlpath = rC:\mydata\generator\py\zszxz.xlsx# 加载工作本workbook = openpyxl.load_workbook(path)# 获取sheet对象sheet = workbook[zszxz]print(sheet)
输出
<Worksheet "zszxz">
当然读者亦能够经过循环工作本方式获取sheet,不赘述;
3.5 复制sheet
在已有的sheet上能够进行复制一个副本; # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 获取sheet对象
sheet = workbook[zszxz]
# 复制sheet
cp_sheet = workbook.copy_worksheet(sheet)
print(cp_sheet)输出
<Worksheet "zszxz Copy">
3.5 获取指定一个单元格对象
指定获取A1单元格对象 # -*- coding: utf-8 -*-
importopenpyxl
path =rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 获取sheet对象
sheet = workbook[zszxz]
# 获取指定单元格cell = sheet[A1]
print(cell)输出
<Cell zszxz.A1>
方式二 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本workbook = openpyxl.load_workbook(path)# 获取sheet对象
sheet = workbook[zszxz]
# 获取指定单元格
cell = sheet.cell(row=1, column=1)
print(cell)输出
<Cell zszxz.A1>
3.6 拜访多个单元格
拜访单元格获取单元格对象; # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 获取sheet对象sheet = workbook[zszxz]
cells_range = sheet[A1:C1]
for cells in cells_range:
for cell in cells:
print(cell)输出
<Cell zszxz.C1>
方式二 # -*- coding: utf-8 -*-
importopenpyxl
path =rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 获取sheet对象
sheet = workbook[zszxz]
# 获取指定范围的行row = sheet.iter_rows(min_row=1, max_col=3, max_row=1)
for cell in row:
print(cell)输出
(<Cell zszxz.A1>, <Cell zszxz.B1>, <Cell zszxz.C1>)
sheet.iter_cols(min_row, max_col, max_row)通用的道理,不赘述
3.7 获取所有行 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本workbook = openpyxl.load_workbook(path)# 获取sheet对象
sheet = workbook[zszxz]
# 获取所有行
for row in sheet.rows:
print(row)输出
(, , )
(, , )
(, , )
(, , )
(, , )
(, , )
(<Cell zszxz.A7>, <Cell zszxz.B7>, <Cell zszxz.C7>)
同理 sheet.columns获取所有列再也不赘述
3.8 获取值
cell.value获取属性值 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 获取sheet对象
sheet = workbook[zszxz]
cells_range = sheet[A1:C1]
for cells in cells_range:
for cell in cells:
# 获取属性值
print(cell.value)输出
id
num name
四 写入 excel
4.1 写入文本 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz_write.xlsx
# 创建一个工作本workbook = openpyxl.Workbook()# 创建一个 sheet
sheet = workbook.create_sheet(zszxz)
# 写入文本形式
sheet[A1] = zszxz666
# 读取
print(sheet[A1].value)
# 保留workbook.save(path)输出
zszxz666
4.2 写入数字 # -*- coding: utf-8 -*-
import openpyxl
import datetime
path = rC:\mydata\generator\py\zszxz_write.xlsx
# 创建一个工作本workbook = openpyxl.Workbook()# 创建一个 sheet
sheet = workbook.create_sheet(zszxz)
# 写入值数字形式
sheet[A2] = datetime.datetime(2020, 10, 15)
print(sheet[A2].value)
# 保留workbook.save(path)输出4.3 写入公式 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz_write.xlsx
# 创建一个工作本
workbook = openpyxl.Workbook()
# 创建一个 sheet
sheet = workbook.create_sheet(zszxz)
# 写入公式
sheet[A3] = =SUM(1, 1)
print(sheet[A3].value)
# 保留
workbook.save(path)4.5 取消合并单元格 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz_write.xlsx
# 创建一个工作本
workbook = openpyxl.Workbook()
# 创建一个 sheetsheet = workbook.create_sheet(zszxz)
# 取消合并单元格
sheet.unmerge_cells(A22)
# 保留
workbook.save(path)4.5 插进照片 # -*- coding: utf-8 -*-
import openpyxl
from openpyxl.drawing.image importImage
path =rC:\mydata\generator\py\zszxz_write.xlsx
# 创建一个工作本
workbook = openpyxl.Workbook()
# 创建一个 sheet
sheet = workbook.create_sheet(zszxz)
# 设置图像img = Image(rC:\mydata\generator\py\main.jpg)
# 设置图像单元格说明
sheet[A1] = you are my angel
# 插进照片
sheet.add_image(img, A1)
# 保留
workbook.save(path)结果如下:
4.6 隐匿轮廓 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz_write.xlsx
wb = openpyxl.Workbook()
ws = wb.create_sheet()
# 隐匿行 A-Bws.column_dimensions.group(A, B, hidden=True)
# 隐匿 列 1 -5
ws.row_dimensions.group(1, 5, hidden=True)
wb.save(path)4.7 设置行高列高 # -*- coding: utf-8 -*-
importopenpyxl
path =rC:\mydata\generator\py\zszxz_write.xlsx
# 创建一个工作本
workbook = openpyxl.Workbook()
# 创建一个 sheet
sheet = workbook.create_sheet(zszxz)
# 写入文本形式sheet[A1] = zszxz666
# 设置行高
sheet.row_dimensions[1].height = 50
# 设置列高
sheet.column_dimensions[A].width = 30
workbook.save(path)
五 删除sheet # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz_write.xlsx
# 加载工作本
workbook = openpyxl.load_workbook(path)
# 得到sheet
sheet = workbook[Sheet]
# 移除sheet
workbook.remove(sheet)
# 保留
workbook.save(path)六 更新工作表 # -*- coding: utf-8 -*-
import openpyxl
path = rC:\mydata\generator\py\zszxz_write.xlsx
# 加载工作本workbook = openpyxl.load_workbook(path)# 得到sheet
sheet = workbook[zszxz]
# 得到值
val = sheet[A1].value
print(val)
# 重新赋值
new_val = sheet[A1].value = zszxzprint(new_val)# 保留
workbook.save(path)输出
zszxz666 zszxz
最后,博主想说:我是一名python研发工程师,整理了一套最新的python系统学习教程,想要这些资料的能够关注私信博主“01”就可,期盼能对你有所帮忙。
|