Python读取Excel表格
前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法。
一、准备工作:
1、安装Python3.7.0(官网下载安装包)
2、安装Pycharm(官网下载安装包)
3、安装openpyxl
4、准备一份Excel表格,绝对路径:D:\zxt\test_data.xlsx , test_data.xlsx内容如下:

二、了解几个常用概念
workbook 工作簿
worksheet 表单
row 行
column 列
cell 单元格
active 活跃的表单(即:正打开使用的表格)
index 索引 (注意:Excel中的索引值是从1开始!!!)
三、Python读取Excel
import openpyxl
# 一、打开工作簿
wb = openpyxl.load_workbook(r"D:\zxt\test_data.xlsx", read_only=False)
# 二、从工作簿中获取表单
# 1.遍历表单名称
for sheet in wb:
print(sheet.title)
print(wb.sheetnames) # 结果是一个列表
# 2.获取表单对象
mySheet = wb.create_sheet('表单4')
print(wb.sheetnames)
sheet4 = wb['表单4'] # 通过表单名获取,注意这里使用方括号
# 三、从表单中取出单元格,并打印单元格的行、列、值
ws = wb.active # 取出活跃的表单
print(ws) # 打印表单
print(ws['A1']) # 打印A1单元格
print(ws['A1'].value) # 打印A1单元格的值
# 1.打印B2单元格的行、列、值
c = ws['B2']
print("B2单元格的行数是{0},列数是{1},值是{2}".format(c.row, c.column, c.value))
print("单元格{0}的值是{1}".format(c.coordinate, c.value)) # c.coordinate表示获取单元格的坐标
# 2.还可以通过指定单元格的行、列索引值,来获取单元格的值
print(ws.cell(row=2, column=2).value)
for i in range(2, 8, 2):
print(ws.cell(row=i, column=2).value)
for j in range(1, 3):
print(ws.cell(row=2, column=j).value)
# 3.根据指定的行、列范围打印单元格的值
row6 = ws[6]
print(row6)
columnB = ws['B']
print(columnB)
row_range = ws[1:8] # 采用切片的方法获取行的范围
column_range = ws['A:C']
column_index = range(1, 4)
# 利用for循环遍历单元格的值
# 方法1.先取出每一行,再取出每一行中的每一个单元格来获取值
for row in row_range:
for cell in row:
print(cell.value)
# 方法2.先取出每一列,再取出每一列中的每一个单元格来获取值
for col in column_range:
for cell in col:
print(cell.value)
# 方法3.通过生成器打印指定矩形区域单元格的值
# 说明:使用iter_rows()和iter_cols()方法更加灵活,可以指定单元格的行、列范围,返回的是一个生成器。
for row in ws.iter_rows(min_row=1, max_row=8, min_col=1, max_col=2):
for cell in row:
print(cell.value)
for col in ws.iter_cols(min_col=1, max_col=2, min_row=1, max_row=8):
for cell in col:
print(cell.value)
# 方法4.按照单元格的范围(矩形)区域打印单元格的值
# 先给出单元格的范围,然后按行取打印每个单元格的值
cell_range = ws['A1:B8']
for rowOfCellObject in cell_range:
for cellObj in rowOfCellObject:
print(cellObj.coordinate, cellObj.value)
# 四、获取表单的最大行数、最大列数
print("表单1是:{0}*{1}的表格".format(ws.max_row, ws.max_column))
# 五、列对应的数字和字符转换
# 说明:使用这个转换功能,我们需要先导入2个模块
from openpyxl.utils import get_column_letter, column_index_from_string
print(get_column_letter(2), get_column_letter(20), get_column_letter(47))
print(column_index_from_string('AU'), column_index_from_string('AHH'))
Python读取Excel表格的更多相关文章
- python读取Excel表格文件
python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...
- [转] Windows下使用Python读取Excel表格数据
http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...
- python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
- Python:读取Excel表格时出现的u'\u51c6’ 无法正确显示汉字
读取Excel后,想显示其中一行的元素,结果读出来是这样[u'\u51c6\u8003\u8bc1\u53f7', u'\u8003\u751f\u59d3\u540d'],始终不显示正常的汉字 依照 ...
- python读取excel表格生成sql语句 第一版
由于单位设计数据库表·,都用sql.不知道什么原因不用 powerdesign或者ermaster工具,建表很痛苦 作为程序猿当然要想办法解决,用Python写一个程序解决 需要用到 xlrd li ...
- python 读取excel表格内不同类型的数据
不同类型数据对应值: #coding=utf-8 import os import xlrd from datetime import datetime,date newparh = os.chdir ...
- Python读写Excel表格
最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理. 以前正好在一本书 ...
- python操作excel表格(xlrd/xlwt)
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- python 处理 Excel 表格
see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...
随机推荐
- 微信小游戏 Three.js UI 2D text 简单方案
在微信小游戏中使用 THREE.js 引擎,没有合适的 UI 库可用,只能自己动手.图片啥的都还好,text 不好弄.text 要计算 width 和 height,不然事件响应范围不对. funct ...
- Jenkins拉取Git远程仓库中指定目录至本地指定目录
Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...
- 记一次线上问题 → 对 MySQL 的 ON UPDATE CURRENT_TIMESTAMP 的片面认知
开心一刻 老婆痛经,躺在沙发上,两岁的女儿看着她问道 女儿:妈妈,你怎么了 老婆:妈妈肚子痛 女儿:哦,妈妈你头疼 老婆:不是头疼,妈妈是肚子疼 女儿用她的不锈钢饭碗砸向老婆的额头,说道:妈妈,你哪里 ...
- Python__Xpath模块
import requests from lxml import etree # 导入xpath headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6 ...
- Spring AOP Aspect的简单实现(基于注解)
第1步:声明使用注解 <!-- 配置扫描注解--> 扫描包的位置<context:component-scan base-package="com.zz"/> ...
- IMAP协议笔记
1. IMAP客户端接收流程简介 1) 遍历所有的邮箱,获取邮箱状态,然后遍历所有邮箱获取到更新的邮件头部信息(包含收件人.发件人.主题.以及时间信息) 2)获取最新邮件的完整信息,其中也包括在第一步 ...
- Nginx:常用基本命令与异常处理
Nginx日志 - ./nginx-1.6.0-ems/logs/nginx.pid Nginx启动时应该使用cmd等命令行工具启动,双击启动同样会产生进程但会造成异常,判断条件是 ./nginx-1 ...
- JVM-调优-命令
目录 jps 命令格式 option参数 示例 jstat 命令格式 参数 option 参数总览 option 参数详解 -class -compiler -gc -gccapacity -gcut ...
- Vue组件传值(一)之 父子之间如何传值
Vue中组件之间是如何实现通信的? 1.父传子: 父传子父组件通过属性进行传值,子组件通过 props 进行接受: 1 父组件中: 2 3 <template> 4 <div id= ...
- ThinkCMF5.1主要特性
更改框架协议为MIT,让你更自由地飞 基于ThinkPHP 5.1重构,但核心代码兼容5.0版本,保证老用户最小升级成本 增加对swoole支持,同时支持swoole协程和全同步模式(请单独安装扩展) ...