openpyxl简介

openpyxl是一个Python的实用第三方库,用户读取/写入后缀为xlsx / xlsm / xltx / xltm的Excel表格文件。

  • openpyxl官方文档

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.9 documentation

表格基本操作

  • 导入openpyxl库

import openpyxl

对工作簿操作

  • 打开工作簿

wb = load_workbook(filename='文件路径', data_only=False)

filename: 文件路径

data_only: 默认为False,以Excel公式的形式读取;当为True的时候以值的形式读取

  • 创建工作簿

wb = Workbook()
  • 保存工作簿

wb.save('文件路径')

对工作表操作

  • 打开活动工作表

ws = wb.active
  • 打开指定名称工作表

ws = wb['工作表名']
  • 创建新工作表

ws = wb.create_sheet('新工作表名')

括号里不传递名字的话,会默认用Sheet、Sheet1、Sheet2……命名

  • 修改工作表名称

ws.title = '新工作表名'
  • 查看所有工作表的名称

wb.sheetnames

返回值是所有工作表名称组成的列表['Sheet1', 'Sheet2', 'Sheet3']

  • 获取工作表的数据范围

获取最大行

max_row = ws.max_row

获取最大列

max_col = ws.max_column
  • 删除工作表

wb.remove(ws)
  • 复制工作表(创建副本)

source = wb.active
target = wb.copy_worksheet(source)

把source创建一个副本,并用target表示

  • 修改工作表标签颜色

# 如:ws.sheet_properties.tabColor = "1072BA"
ws.sheet_properties.tabColor = '颜色十六进制码'

对行/列操作

  • 在最后添加一行数据

# 可迭代对象有列表、元组
ws.append(可迭代对象)
  • 插入行/列

ws.insert_rows(要添加的行, 插入的行数)
ws.insert_cols(要添加的列, 插入的列数)
  • 删除行/列

ws.delete_rows(开始行, 删除的行数)
ws.delete_cols(开始列, 删除的列数)

对单元格操作

  • 访问单个单元格

    • 使用索引
# 如取第A1单元格:c = ws['A1']
c = ws['单元格位置']
  • 使用ws.cell()方法
# 如取A1单元格:c = ws.cell(1, 1)
c = ws.cell(行, 列)
  • 访问多个单元格

# 如取A1到C2单元格:cell_range = ws['A1':'C2']
cell_range = ws['首单元格':'末单元格']
  • 获取单元格的值

    • 使用索引
# 如取第A1单元格的值:cv = ws['A1'].value
cv = ws['单元格位置'].value
  • 使用ws.cell()方法
# 如取A1单元格:cv = ws.cell(1,1).value
cv = ws.cell(行, 列).value
  • 向单元格里写入值

# 单元格对象为上方的c
单元格对象.value = 值
  • 按行遍历获取单元格

for row in ws.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1, values_only=False):print(row)

row为每行单元格组成的元组

min_row: 最小行

max_row: 最大行

min_col: 最小列

max_col: 最大列

values_only: 默认为False,以单元格对象返回;当为True时,以单元格值返回

  • 按列遍历获取单元格

for col in ws.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1, values_only=False):print(col)

col为每列单元格组成的元组

min_row: 最小行

max_row: 最大行

min_col: 最小列

max_col: 最大列

values_only: 默认为False,以单元格对象返回;当为True时,以单元格值返回

  • 合并单元格

# 如合并A1到C2: ws.merge_cells('A1:C2')
ws.merge_cells('首格:末格')
# 另一种方法,合并A1到B2的单元格
ws.merge_cells(start_row=1, start_column=1, end_row=2, end_column=2)

start_row: 开始行

srart_column: 开始列

end_row: 结束行

end_column: 结束列

  • 拆分合并单元格

# 如拆分A1到C2: ws.unmerge_cells('A1:C2')
ws.unmerge_cells('首格:末格')
# 另一种方法,拆分A1到B2的单元格
ws.unmerge_cells(start_row=1, start_column=1, end_row=2, end_column=2)

start_row: 开始行

srart_column: 开始列

end_row: 结束行

end_column: 结束列

表格进阶操作

表格显示操作

  • 移动覆盖数据区域

# 将D4到F10向上移动1行,向右移动2列
ws.move_range("D4:F10", rows=-1, cols=2)
  • 冻结行/列

# 如冻结B列和第2行: ws.freeze_panes = 'B2'
ws.freeze_panes = '作为基准的单元格'
  • 隐藏行/列

# 隐藏A到D列
ws.column_dimensions.group('A', 'D', hidden=True)
# 隐藏1到10行
ws.row_dimensions.group(1, 10, hidden=True)

Excel公式操作

  • 使用Excel公式

# 如求和: ws["A1"] = "=SUM(1, 1)"
ws['单元格位置'] = '=Excel公式'

非文本内容操作

  • 插入图片

from openpyxl.drawing.image import Image
img = Image('图片文件')
ws.add_image(img, '单元格位置') 

巧记忆

openpyxl常用用法相关推荐

  1. 【Android 异步操作】Handler 机制 ( Handler 常用用法 | HandlerThread 简介 | HandlerThread 源码注释分析 )

    文章目录 一.Handler 常用用法 二.HandlerThread 简介 三.HandlerThread 源码 一.Handler 常用用法 主线程 Handler 主要作用 : Looper 和 ...

  2. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  3. 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )

    文章目录 I . 枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名类 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 VI . 获取枚举常量的成员变量 VII . 调用枚举常 ...

  4. Python中的基本函数及其常用用法简析

    分享Python中的基本函数及其常用用法简析,首先关于函数的解释函数是为了达到某种目的而采取的行为,函数是可重复使用的,用来实现某个单一功能或者功能片段的代码块,简单来说就是由一系列的程序语句组成的程 ...

  5. 【Data Mining】机器学习三剑客之Numpy常用用法总结

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 一.前言 玩数据分析.数据挖掘.AI的都知道这个pyt ...

  6. python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...

    python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...

  7. grep参数说明及常用用法

    grep参数说明及常用用法 查看文件内容 [kou@localhost ~]$ more size.txt b124230 b034325 a081016 m7187998 m7282064 a022 ...

  8. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  9. 关于grep,egrep正则表达式的常用用法

    正则表达式是一类字符所书写的模式(pattern) 元字符:不表示字符本身的意义,而用于额外功能性的描述:而如果在这些特定的字符前加/这个符号那么这些字符就表示原有的意思. 正则表达式:基本正则表达式 ...

最新文章

  1. 我认识Linux的小羞愧历史
  2. 思科宣布NB-IoT平台实现商用
  3. 一切都是对象---JAVA编程思想
  4. 上传问题分析1--文件保存位置
  5. 学计算机平面设计可以找什么工作,大学生学了平面设计之后能找什么样的工作...
  6. ASP.NET Core 2.0利用MassTransit集成RabbitMQ
  7. HDU 6265 Master of Phi
  8. 驱动开发中的常用操作
  9. USACO3.1.1最短网络
  10. 89c51汇编语言流水灯,汇编语言流水灯
  11. Head First设计模式(中文版)PDF
  12. 无效的m3u8怎么办_m3u8视频不能播放的问题
  13. 新冠疫情全球数据可视化
  14. 2020年总结:携梦而行,无怨无悔
  15. android SDK introduce
  16. windows下搭建ITS运行环境
  17. 动画练习:Punch
  18. Java调用TSC打印机进行打印
  19. 30个高质量的数据集网站,你必须要试试!
  20. 吉林大学软件学院数据库系统原理复习

热门文章

  1. 宝付HR发现招聘互联网赚钱漏洞,错过真就可惜了
  2. @Documented,@Retention,@Target
  3. uml点餐系统活动图_UML建模——活动图(Activity Diagram)
  4. IP地址,netmask 子网掩码、gateway 默认网关,dns-nameserve域名服务器总结
  5. 【TikZ 简单学习(下):基础绘制】Latex下的绘图宏包
  6. 解决几个病毒,wowexec.tmp,MediaSups.exe,Rpcd.exe,RpcS.exe,sysdrv.dll等
  7. 笔记本电脑重装win7系统之键盘乱码问题解决
  8. 五、JMeter压力测试
  9. 《高等代数学》(姚慕生),例1.5.7
  10. BP2958D/F,智能调光无频闪,AC85V-265V转72V灯珠电压 200MA