python与Excel的完美结合
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的完美结合相关推荐
- Python和Excel的完美结合:常用操作汇总
在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向pyt ...
- pythonexcelweb交互插件_来一次Python与Excel的完美交互
使用python写脚本文件,实现指定文件的copy 要求: (1)一个目录2000_PCAP,该目录下存放着很多文件: (2)一个表格(见附件),表格内存放着很多数字: 要求:在2000_PCAP目录 ...
- 操作汇总~Python和Excel交互
Python和Excel的完美结合:常用操作汇总(案例详析) 1. 介绍 本文用的主要也是pandas,绘图用的库是plotly,实现的Excel的常用功能有: Python和Excel的交互 vlo ...
- python读取excel图片尺寸_Python读取excel中的图片完美解决方法
excel中有图片是很常见的,但是通过python读取excel中的图片没有很好的解决办法. 网上找了一种很聪明的方法,原理是这样的: 1.将待读取的excel文件后缀名改成zip,变成压缩文件. 2 ...
- python拆分excel 样式不变_python带格式拆分excel表单,copy库完美搞定
python拆分excel表单,生成单独的excel文件,网上这方面的文章很多.但大多只讲主功能如何实现,让拆分后的表保持和原表单一致的格式,则鲜有人讲.本文通过调用copy库,完美实现带格式拆分表单 ...
- 怎么用python处理excel文件-Python自动化如何处理excel文件数据
原标题:Python自动化如何处理excel文件数据 在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似 ...
- python处理excel视频-从零基础开始用Python处理Excel数据 视频教程
首先学习Python的基础知识,然后使用Python来控制Excel,做数据处理. 电子版数据免费下载 链接: https://pan.baidu.com/s/17xqT5bXsJFbfXJTXcGr ...
- python与office结合可以干什么-震惊!当Python遇到Excel后,将开启你的认知虫洞
本文主要内容: 1. Excel,你为什么如此强大 2. 软件开发也需要团队作战 3. Excel的集成方案演化 4. macOS特有的集成方案:applescript 5. Python与Excel ...
- xlrd读取所有sheet名_如何在Python对Excel进行读取
在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似批量数据操作还会写在python文件中吗? 应对这一问 ...
最新文章
- putty 串口登录开发板
- 机器学习基础--基本术语
- SSL应用系列之二:为Web站点实现SSL加密访问
- matlab方位探测处理,急大神帮忙,谁有MATLAB解算像片内外方位元素的程序
- 《Java 进阶之路》 下--推荐书籍
- java equals比较_Java中equals()和==的比较
- odoo12 mysql_odoo12从零开始:二、1)个性化定制odoo12之修改数据库创建页面
- 线性支持向量机完全理解版
- WPFの操作文件浏览框几种方式
- C++:31---对象引用和赋值
- ios页面间传递参数四种方式
- 爆牙齿的世界杯日记(忆)。
- 5-32 说反话-加强版
- PHP注入漏洞(附代码,具体步骤)
- 免费自学编程的12个网站
- threejs 热力图做成材质_脉冲滤筒除尘器滤芯的材质
- 一只Quant菜鸟的修行之路
- 【智能安防监控补光灯调光芯片方案】单节锂电降压恒流驱动芯片FP8013 最大输出3A体积小/静态功耗低/效率高/支持无频闪调光
- 【进程管理】进程资源图理解与化简
- 自定义微博小尾巴 源码+解析
热门文章
- 编译时MSIL注入--实践Mono Cecil(1)
- 30天了解30种技术系列---(1)现代web应用服务器-Express.js
- [JBoss] - 环境搭建
- linux下锐捷拨号的问题
- eclipse工作空间在哪里配置?
- oracle jpa字段加注释,JPA注释参考手册.doc
- mysql 同步中历史记录_[Mysql]备份同库中一张表的历史记录 insert into ..select
- ajax发送异步请求四个步骤,深入理解ajax异步请求的五个步骤(详细代码)
- 【PP生产订单】入门介绍(三)
- sap百分数表示Demo