最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单。本文对 openpyxl 的使用进行总结,主要包含以下内容:

用python处理excel文件有多轻松?工作从未如此简单

openpyxl 是一个对 xlsx/xlsm/xltx/xltm 格式的 2010 excel 文档进行读写的 python 库。它官网有详细的文档介绍。在进行使用前,需先安装并引入

在进行 excel 操作之前,先对 excel 的文件结构做一个简单了解,以便于熟悉后续的操作。

如下图:

用python处理excel文件有多轻松?工作从未如此简单

一个 excel 文件,其内容按层次分为工作簿(文件) -> 工作表(sheet) -> 行列 -> 单元格 ,对应上图,整个 excel 文件即是一个工作簿;工作簿下可以有多个工作表(如图中的 Sheet1/test1 等等);工作表中就是对应的表格数据,分为行和列,行是用序号表示,列用大写字母表示(也可用序号);行与列的交点就是每一个存储数据的单元格。因此,我们对 excel 表格进行读写,基本按这个层次思路来操作:读入文件,找到工作表,遍历行列,定位单元格,对单元格进行读写。因此,会涉及到工作表、行列、单元格的读写操作。这些操作之前,需要先把文件加载进来,一个 excel 文件就是一个工作簿 (workbook),加载操作如下(示例中的 excel 文件为 text.xlsx):

工作表( sheet )会有多个,可以读取全部的工作表,读取单个时,可以按 sheet 名称读取,也可以按下标(下标从0开始)。

用python处理excel文件有多轻松?工作从未如此简单

如下:

若需要新增工作表,按操作流程,先添加工作表,再保存文件。创建通过create_sheet完成,创建后保存(save)文件,添加才能生效。

要修改工作表名称,直接通过设置工作表的 title 即可,修改后同样需要保存文件。

删除工作表,需要先获取 sheet 对象,然后删除。删除有两种方式,一是使用 workbook 提供的 remove 方法,也可以直接使用 python 的del进行删除。删除操作后,同样需要保存文件:

获取 sheet 对象后,后续即可进行行列操作,包括行列读取,添加,删除等。

添加行列,可以指定位置添加单个行列或多个行列。

删除操作与插入行列操作方式一致,使用delete_rows及delete_cols方法。

我们的数据最终是保存在每一个单元格(Cell)中,因此,最终我们操作数据其实就是单元格中的数据,单元格中,openpyxl 使用是 Cell 对象。前面在遍历行列数据时,可以看到输出的内容,这对应的单元格对象。下面对单元格的操作进行说明。

定位获取单元格有两种方式:

获取单元格对象后,可以获取数据值及其属性,包括它所在的行列数,坐标,值等。

通过对单元格区域,可以向上、下、左、右进行移动,使用的是move_range(range,rows,cols),其中 rows 和 cols 为整数,正整数表示向下或向右,负整数为向上或向左。

对于跨行和跨列,需要对单元格进行合并,使用的是merge_cells(range_string, start_row, start_column, end_row, end_column)。如果要合并的单元格都有数据,只会保留左上角的数据,其他则丢弃。合并及拆分都可以通过行列坐标(如A1)或者行列下标(如1,2)进行。

对单元格值进行修改和写入,直接对cell.value进行赋值即可。这里需要注意的是,可以写入 excel 公式,具体公式与 excel 中用到公式一致,另外,若是写入公式,读取时获取到的 value 值也是公式,而非公式值。

单元格的格式包括行高,列宽,字体、边框、对齐方式、填充颜色等。这些都在 openpyxl 的 styles 模块中。

最后注意的是,这些修改操作最后都需要通过保存操作(wb.save(file_path))才能生效。

通过上面的讲解,了解如何使用 python 的 openpyxl 库对 excel 文档的处理操作,可以发现它的操作逻辑相当是清晰简单的,符合的我们使用 excel 的习惯。处理流程基本是加载文件、定位需要处理的工作表、行、列及单元格。对它们进行读、写、修改格式等操作。因此,如果有自动化处理 excel 文件的需求,用 openpyxl 吧,但它限制只能处理 2010 格式的 excel 文档,对于旧格式( xls )的建议都统一换为新的格式再操作,或者也可以使用 xlrd 和 xlwt 模块操作。

怎么用python处理excel文件-用python处理excel文件有多轻松?工作从未如此简单相关推荐

  1. python设置excel套打_用强大的Python处理海量的Excel,工作从未如此简单

    excel 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.面试集锦.学习资料等. 前言 成堆的数据如何导入Excel进行分析? 大量的表 ...

  2. python实现自动发送邮件,同时给多人发送,是工作变的简单(附源码)

    python自动发送邮件,实现同时给多人发送和邮箱轰炸(注意尽量不要轰炸哦,小心封号). 要想自动发送邮件首先需要获得我们邮箱的授权码. 授权码获取  QQ邮箱主页  >设置>账户> ...

  3. 怎么用python处理excel文件-用Python读写Excel文件的方式比较

    前段时间做一个项目,却不得不使用Python直接生成Excel文件,后来随着需求的变化,还要对已有的Excel文件进行读取.在这个过程中,研究并尝试了一些工具,也走了一些弯路.记录下来,下次再有类似需 ...

  4. python pandas读取excel-Python使用Pandas读写EXCEL文件教程

    欢迎,来自IP地址为:211.103.135.163 的朋友 教程开始之前,我们需要首先了解一下什么是Excel,这有助于理解之后教程中的内容. 什么是Excel Excel  是微软出品的和款办公软 ...

  5. python处理excel教程实例-python 读写excel文件操作示例【附源码下载】

    本文实例讲述了python 读写excel文件操作.分享给大家供大家参考,具体如下: 对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等 ...

  6. python filedialog_Python使用FileDialog将列表保存到指定的excel文件中,python,filedialog

    python 将列表使用filedialog保存到指定的excel文件中 def toExcel(self): ''' 导出列表到Excel文件中 :return: ''' ftypes=[('Exc ...

  7. python将csv一行保存一个txt_Python读写文件(csv、txt、excel)

    大家做在数据解决的时候,一定难免会与文件交互,那么对于指定的文件类型,我们如何操作呢? 1.python读写csv文件import csv #python2可以用file替代openwith open ...

  8. 如何利用python整合excel_使用 Python 合并多个格式一致的 Excel 文件(推荐)

    一 问题描述 最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 Excel 表格:每个表格的都只有一个 sheet,表格的前两行为表格标题及表头,表格的最后一行是相关人员签字.最终目标是将每个 ...

  9. python csv转excel_将Excel文件转为csv文件的python脚本

    将Excel文件转为csv文件的python脚本 #!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚 ...

最新文章

  1. 微信小程序在开发中遇到的问题与解决方法
  2. 深入理解C指针第一章小结1
  3. Ubuntu下安装配置JDK
  4. vSphere vSAN 入门
  5. 模型视图控制器mvc
  6. 学生成绩abcde怎样划分_同等教育下,学生成绩差距较大,怎样避免学习中的“马太效应”?...
  7. JMeter工作基本原理
  8. 从医生看病和快餐店点餐理解Node.js的事件驱动
  9. ViewHolder最简洁的写法
  10. 使用docker私有化部署nuget server-proget
  11. 如何修复VUM在客户端启用之后报数据库连接失败的问题
  12. tm影像辐射定标_Landsat-TM-辐射定标和大气校正步骤
  13. 15、作用域public、private、protected 以及不写时的区别
  14. flutter图片识别_想在 flutter 中提取图片颜色?试试 color_thief_flutter
  15. 弘辽科技:淘宝店铺出现异常,卖家该如何应对?要注意些什么?
  16. 【网络编程实践--陈硕】2.4.3 使用procmon观察dummyload
  17. 接口测试用例设计实践总结
  18. centos7重启网卡提示错误的解决方法
  19. 服务器系统能玩吃鸡么,迅游普通vip能吃鸡能玩什么服务器 | 手游网游页游攻略大全...
  20. android端采用FFmpeg进行音频混合与拼接剪切

热门文章

  1. syslog简介——系统日志写入API
  2. laravel5.6 数据库获取数据模式变为’数组‘
  3. 对偶问题复习要点整理
  4. 2017级数据结构助教批改方案
  5. php 序列化储存和转化 json_encode() json_decode($q,true)
  6. Python全栈开发——描述符
  7. [HNOI 2011]数矩形
  8. Hibernate criteria 增加排序项
  9. 2016 Multi-University Training Contest 1 GCD【RMQ+二分】
  10. Git历险记(四)——索引与提交的幕后故事