Excel 是 Windows 环境下流行的、强大的电子表格应用。openpyxl 模块让 Python 程序能读取和修改 Excel 电子表格文件。例如,可能有一个无聊的任务,需要从一个电子表格拷贝一些数据,粘贴到另一个电子表格中。或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的赤字。

正是这种无聊无脑的电子表格任务,可以通过 Python 来完成。LibreOffice Calc, WPS 和 OpenOffice Calc 都能处理 Excel 的电子表格文件格式,这意味着 openpyxl 模块也能处理来自这些应用程序的电子表格。

你可以从 https://www.libreoffice.org/和http://www.openoffice.org/下载这些软件。即使你的计算机上已经安装了 Excel,可能也会发现这些程序更容易使用。

1. Excel文档基本定义

  • 工作簿(workbook): 一个 Excel 电子表格文档;
  • 工作表(sheet): 每个工作簿可以包含多个表, 如: sheet1, sheet2等;
  • 活动表(active sheet): 用户当前查看的表;
  • 列(column): 列地址是从 A 开始的;
  • 行(row): 行地址是从 1 开始的;
  • 单元格(cell): 特定行和列的方格;

2. 安装 openpyxl 模块

Python 没有自带 openpyxl,所以必须安装。

pip3 install openpyxl

3. 读取 Excel 文档

将使用一个电子表格 example.xlsx,你可以自己创建这个电子文档,内容如下:

在导入 openpyxl 模块后,就可以使用 openpyxl.load_workbook()函数。打开 Excel 文档

# 导入工作薄
wb = openpyxl.load_workbook('excelDemo/example.xlsx') # 加载工作薄
wb.sheetnames           # 获取当前所有工作表的名称, 返回一个列表
wb.active               # 获取当前活跃的工作表

从工作簿中取得工作表

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
sheet = wb['Sheet1']                # 工作表
sheet.title                         # 获取当前活动表的名称
sheet.cell(row=1, column=2)         #  获取单元格指定行和指定列的内容

表中取得单元格

Cell 对象有一个 value 属性,不出意外,它包含这个单元格中保存的值。Cell 对象也有 row、column 和 coordinate 属性,提供该单元格的位置信息。

row属性给出的是整数 1,column 属性给出的是’B’,coordinate 属性给出的是’B1’。

cell = sheet['A1']
cell_value = sheet['A1'].value
cell.row, cell.column cell.coordinate

4. 工作簿、工作表、单元格

下面是从电子表格文件中读取单元格涉及的所有函数、方法和数据类型。一个完整的操作过程如下:

  • 导入 openpyxl 模块。
  • 调用 openpyxl.load_workbook()函数。
  • 取得 Workbook 对象。
  • 调用 wb.sheetnames和 wb.active 获取工作簿详细信息。
  • 取得 Worksheet 对象。
  • 使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。
  • 取得 Cell 对象。
  • 读取 Cell 对象的 value 属性

一个完整的案例代码如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import openpyxl# 1. 读取excel文档
wb = openpyxl.load_workbook('excelDemo/example.xlsx')
# # 返回一个workbook对象, 有点类似于文件对象;
# print(wb, type(wb))# 2. 在工作薄中取得工作表
# print(wb.get_sheet_names())
# 返回一个列表, 存储excel表中所有的sheet工作表;
print(wb.sheetnames)# 返回一个worksheet对象, 返回当前的活动表;
# print(wb.get_active_sheet())
# print(wb.active)# 3. 获取工作表中, 单元格的信息
# wb.get_sheet_by_name('Sheet1')
sheet = wb['example']
print(sheet['A1'])
print(sheet['B1'].value)cell = sheet['B1']
print(cell.row, cell.column)print(sheet.cell(row=3, column=2))
print(sheet.cell(row=3, column=2).value)
print(sheet.cell(row=3, column=2, value='www'))# sheet的属性print(sheet.max_column)
print(sheet.max_row)
print(sheet.title)
sheet.title = 'example'
print(sheet.title)for row in sheet.rows:for cell in row:print(cell.value, end='\t')print('\n')wb.save(filename="excelDemo/example.xlsx")

python与Excel的完美结合相关推荐

  1. Python和Excel的完美结合:常用操作汇总

    在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向pyt ...

  2. pythonexcelweb交互插件_来一次Python与Excel的完美交互

    使用python写脚本文件,实现指定文件的copy 要求: (1)一个目录2000_PCAP,该目录下存放着很多文件: (2)一个表格(见附件),表格内存放着很多数字: 要求:在2000_PCAP目录 ...

  3. 操作汇总~Python和Excel交互

    Python和Excel的完美结合:常用操作汇总(案例详析) 1. 介绍 本文用的主要也是pandas,绘图用的库是plotly,实现的Excel的常用功能有: Python和Excel的交互 vlo ...

  4. python读取excel图片尺寸_Python读取excel中的图片完美解决方法

    excel中有图片是很常见的,但是通过python读取excel中的图片没有很好的解决办法. 网上找了一种很聪明的方法,原理是这样的: 1.将待读取的excel文件后缀名改成zip,变成压缩文件. 2 ...

  5. python拆分excel 样式不变_python带格式拆分excel表单,copy库完美搞定

    python拆分excel表单,生成单独的excel文件,网上这方面的文章很多.但大多只讲主功能如何实现,让拆分后的表保持和原表单一致的格式,则鲜有人讲.本文通过调用copy库,完美实现带格式拆分表单 ...

  6. 怎么用python处理excel文件-Python自动化如何处理excel文件数据

    原标题:Python自动化如何处理excel文件数据 在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似 ...

  7. python处理excel视频-从零基础开始用Python处理Excel数据 视频教程

    首先学习Python的基础知识,然后使用Python来控制Excel,做数据处理. 电子版数据免费下载 链接: https://pan.baidu.com/s/17xqT5bXsJFbfXJTXcGr ...

  8. python与office结合可以干什么-震惊!当Python遇到Excel后,将开启你的认知虫洞

    本文主要内容: 1. Excel,你为什么如此强大 2. 软件开发也需要团队作战 3. Excel的集成方案演化 4. macOS特有的集成方案:applescript 5. Python与Excel ...

  9. xlrd读取所有sheet名_如何在Python对Excel进行读取

    在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似批量数据操作还会写在python文件中吗? 应对这一问 ...

最新文章

  1. putty 串口登录开发板
  2. 机器学习基础--基本术语
  3. SSL应用系列之二:为Web站点实现SSL加密访问
  4. matlab方位探测处理,急大神帮忙,谁有MATLAB解算像片内外方位元素的程序
  5. 《Java 进阶之路》 下--推荐书籍
  6. java equals比较_Java中equals()和==的比较
  7. odoo12 mysql_odoo12从零开始:二、1)个性化定制odoo12之修改数据库创建页面
  8. 线性支持向量机完全理解版
  9. WPFの操作文件浏览框几种方式
  10. C++:31---对象引用和赋值
  11. ios页面间传递参数四种方式
  12. 爆牙齿的世界杯日记(忆)。
  13. 5-32 说反话-加强版
  14. PHP注入漏洞(附代码,具体步骤)
  15. 免费自学编程的12个网站
  16. threejs 热力图做成材质_脉冲滤筒除尘器滤芯的材质
  17. 一只Quant菜鸟的修行之路
  18. 【智能安防监控补光灯调光芯片方案】单节锂电降压恒流驱动芯片FP8013 最大输出3A体积小/静态功耗低/效率高/支持无频闪调光
  19. 【进程管理】进程资源图理解与化简
  20. 自定义微博小尾巴 源码+解析

热门文章

  1. 编译时MSIL注入--实践Mono Cecil(1)
  2. 30天了解30种技术系列---(1)现代web应用服务器-Express.js
  3. [JBoss] - 环境搭建
  4. linux下锐捷拨号的问题
  5. eclipse工作空间在哪里配置?
  6. oracle jpa字段加注释,JPA注释参考手册.doc
  7. mysql 同步中历史记录_[Mysql]备份同库中一张表的历史记录 insert into ..select
  8. ajax发送异步请求四个步骤,深入理解ajax异步请求的五个步骤(详细代码)
  9. 【PP生产订单】入门介绍(三)
  10. sap百分数表示Demo