openpyxl 介绍

openpyxl 是一个直接可用于读写 xlsx 、xlsm、xltx、xltm 文件的 Python 内置库,借助它可以利用 Python 语法对本地 xlsx 文件进行自动化批量操作

先说一下安装部分,如果小伙伴们用 Anaconda 作为 Python 环境的话,openpyxl 无需安装可直接使用;需要安装的话方法也非常简单 pip 工具一行命令即可

pip install openpyxl

xlsx 文件属性

在对 Excel 表格处理之前,需要了解一下 xlsx 文件的几个名词解释及构造

1,Workbook 指的是神什么?

Workbook 名叫工作薄,可以代指一个 xlsx 文件;

2, sheet、cell、row 、col 分别指的是什么?

关于问题2 ,可参考下图(见注释)

openpyxl 基本命令操作

1, 创建 一个空的 workbook

from openpypl import Wrokbook

from openpyxl.utils import get_column_letter

wb = Workbook()

ws1 = wb.active

一个 Workbook 默认至少含有一个 worksheet ,通过命令 Workbook.active 来获取当前第一个 sheet(也就是第一个 sheet);

2,创建新的 worksheet

ws1 = wb.create_sheet("Mysheet") # insert at the end (default)

ws2 = wb.create_sheet("Mysheet", 0) # insert at first position

# or

ws3 = wb.create_sheet("Mysheet", -1) # insert at the penultimate position

可通过 create_sheet() 命令创建新的 worksheet , create_sheet 默认有两个参数 name、index;

name,定义 sheet 的名字;

index,来设置插入 sheet 的位置,默认为 None 即新创建的 sheet 插入到最后面;0 代表插入第一个 sheet 的位置;

3,更改 sheet 的名字

一行代码即可

ws.title = 'New Title'

4,更改 sheet 上 tab 背景颜色

ws.sheet_properties.tabColor = "1072BA"

通过修改 Wroksheet.sheet_properties.tabColor 参数即可,需要注意的是这里只接收 RRGGBB 颜色代码;

关于不清楚 sheet tab 背景颜色不清楚是什么的小伙伴,可参考下图;

5, 返回 Workbook 中所有 sheet 的名字

通过 Workbook.sheetname 命令即可查看

>>> print(wb.sheetnames)

['Sheet2', 'New Title', 'Sheet1']

# 或者用迭代方法

>>> for sheet in wb:

... print(sheet.title)

6,将现有的 worksheets 复制新创建的 workbook 中

可通过 Workbook.copy_worksheet()函数方法

# 将 source 中的worksheet复制到 target 中去

source = wb.active

target = wb.copy_worksheet(source)

需要注意的是,当 workbook 为只读或 只写模式时不可复制;另外只有 cells(值,样式,超链接、注释) 和 特定的 worksheet 属性(维度、格式、属性)可以复制,其他的一些 workbook / worksheet 属性不可复制( Images Charts 等)

7,获取某个 cell 的数据

成功创建完 Workbook、Worksheet 之后,接下来就可以修改 cell(单元格中的内容,Cells 可以通过 worksheet 中特有关键词来获取

>>> c = ws['A4'] # 获取第4行列名为A 单元格中的值

通过赋值命令对其修改

ws['A4'] = 4

openpyxl 中有一个函数 Worksheet.cell() 可修改单元格中的数据,可定位到具体行、具体列进行更改,

d = ws.cell(row = 4,columns = 2,value = 10)

row 表示指定行

columns 表示指定列

value 表示该单元格中需替代的数据值;当此参数不设置时表示只对该 cell 创建内存空间,不赋值

例如

>>> for x in range(1,101):

... for y in range(1,101):

... ws.cell(row=x, column=y)

8,获取多个单元格

8.1 , openpyxl 也可以进行切片操作,来获取多个单元格

>>> cell_range = ws['A1':'C2']

8.2, worksheet 中多行多列数据获取方式相似

>>> colC = ws['C']

>>> col_range = ws['C:D']

>>> row10 = ws[10]

>>> row_range = ws[5:10]

8.3,Worksheet.iter_row() 来获取 sheet 中行列范围,再利用循环迭代获取每一个单元格数据

>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):

... for cell in row:

... print(cell)

8.4,Worksheet.iter_cols() 也可以实现同样功能

>>> for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):

... for cell in col:

... print(cell)

需要注意的时在 read-only 模式中,Worksheet,iter_cols() 方法不能使用

9,只查看 cell 中的 value

9.1,只查看 worksheet 中的 value 时,可通过 Worksheet.values 属性,该属性将迭代 worksheet 中所有行,但返回的仅仅是 cell values

for row in ws.values:

for value in row:

print(value)

9.2,通过 Worksheet.iter_rows() 和 Worksheet.iter_cols() 也可以实现,在函数中加入一个参数 values_only = True 即可返回 cell 的值

>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):

... print(row)

(None, None, None)

(None, None, None)

10,读写文件操作

10,excel 文件加载

openpyxl.load_workbook() 函数来打开一个指定本地存储的 xlsx 文件

>>> from openpyxl import load_workbook

>>> wb2 = load_workbook('test.xlsx')

>>> print wb2.sheetnames

['Sheet2', 'New Title', 'Sheet1']

10.2,excel 文件存储

Workbook 修改成功后,后创建完成之后,通过Workbook.save(path) 命令即可保存至本地磁盘

>>> wb = Workbook()

>>> wb.save('balances.xlsx')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python自动化办公Excel模块openpyxl原理及用法解析

本文地址: http://www.cppcns.com/jiaoben/python/361508.html

python办公自动化模块_Python自动化办公Excel模块openpyxl原理及用法解析相关推荐

  1. python办公自动化知识点_Python自动化办公知识点整理汇总|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? ​ 这可能是很多非IT职场人士面临的困 ...

  2. python 自动化办公要装哪些模块_Python自动化办公(内容)

    python自动化办公(python操作Excel.Word.PDF.PPT) python使用openpyxl操作excel: python使用PyPDF2和pdfplumber操作pdf: pyt ...

  3. python 获取excel文本框_Python自动化办公-Excel读取与操作

    实现自动化办公是许多同学学习Python的初衷,但对于有选择困难症而且基础相对薄弱的同学来讲,面对众多的教程,Python库,往往无从下手,本篇从实际应用的角度,给出一条能快速上手的学习及实操路线,以 ...

  4. python mysql 遍历_Python自动化办公系列六(pdf文档处理)

    PDF 表示 Portable Document Format,使用 .pdf 作为文件扩展名.虽然 PDF 支持许多功能,但现在我们专注于最常做的两件事:从 PDF 读取文本内容和从已有的文档生成新 ...

  5. python excelwriter保存路径_Python自动化处理Excel报表,我的工作更轻松了!

    没有转义的Excel! Excel无处不在,即使我们使用了Python之类强大的辅助工具,依然无法摆脱Excel.因为你的老板和同事仍然需要方便的方法来访问重要数据.但是,这并不意味着你不能通过使用P ...

  6. 自动化办公-excel篇 openpyxl的使用详解

    本章介绍excel自动化办公--openpyxl库的使用.我觉得openpyxl是一款轻量级的excel操作库,适合用于一些基本的操作构建,如果涉及批量处理数据,如求一整列的最大值最小值等,无疑是pa ...

  7. python断言失败_python异常处理、自定义异常、断言原理与用法分析

    本文实例讲述了python异常处理.自定义异常.断言原理与用法.分享给大家供大家参考,具体如下: 什么是异常: 当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象, ...

  8. python自动化办公模块_Python 自动化办公之 Excel 模块 — openpyxl 的基本使用!

    openpyxl 介绍 openpyxl 是一个直接可用于读写 xlsx .xlsm.xltx.xltm 文件的 Python 内置库,借助它可以利用 Python 语法对本地 xlsx 文件进行自动 ...

  9. pwd python 安装 模块_Python自动化办公之邮件定时发送

    Python自动化之邮件的定时发送,我们这里使用网易163邮箱. Python邮件操作相关模块的安装 yagmail,The goal here is to make it as simple and ...

最新文章

  1. 微软拼音输入法2007状态栏无法显示!
  2. add1顶部菜单html,add1.html
  3. git学习之通俗易懂篇(一)
  4. pytorch test单张图片_PyTorch版EfficientDet比官方TF实现快25倍?这个GitHub项目数天狂揽千星...
  5. [转]Installing Memcached on Windows
  6. db2 linux 导入数据_MySQL数据的导出和导入(Linux)
  7. “Oracle 不会放弃 Java!”
  8. Eclipse在线安装SVN插件
  9. Sublime Text自定义插入当前时间的插件
  10. 卸载symantec 找不到vpshellres.dll 解决方案
  11. SpringMVC笔记--5处理响应数据ModelAndView
  12. c语言字体取模软件下载,非常好用的lcd汉字取模软件
  13. cwRsync的安装与配置用法
  14. JavaScript小白入门篇(二、高级语法之 BOM 详解)
  15. 学习笔记——C语言打印日志封装
  16. 快速构建企业级应用的开发平台
  17. 清华差生10年奋斗经历:各种反省各种彻悟
  18. ATI移动显卡全系列型号及参数一览表
  19. 【Unity】Mesh网格编程(四)麦比乌斯环
  20. 符合lft, rgt的无限分类算法的Java生成代码

热门文章

  1. eclipes 快捷键操作:
  2. android 载入svg动画,实例讲解使用SVG制作loading加载动画的方法
  3. TECPLOT自定义函数
  4. 新东方java开发面试经历---现场面试(2021年1月)
  5. 计算机建立excel文件,我的电脑不能新建excel!电脑excle无法使用
  6. websocket使用springboot实现的详细步骤
  7. 机器学习中是如何处理误差的
  8. 欧姆龙CP系列PLC以太网通讯处理器的应用
  9. 解决你关于域名过期且没有备案的问题
  10. 3天(从策划到上线传播)获客10w+| 小程序拉新活动范例