如何在Python对Excel进行读取


Posted in Python onJune 04, 2020

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

应对这一问题,可以将数据写excel文件,针对excel 文件进行操作,完美解决。

本文仅介绍python对excel的操作

安装xlrd 库

xlrd库 官方地址:https://pypi.org/project/xlrd/

pip install xlrd

如何在Python对Excel进行读取

       笔者在安装时使用了 pip3 install xlrd

原因:笔者同时安装了python2 和 python3

如果pip的话会默认将库安装到python2中,python3中不能直接调用。

那么到底是使用pip 还是pip3进行安装呢?

如果系统中只安装了Python2,那么就只能使用pip。

如果系统中只安装了Python3,那么既可以使用pip也可以使用pip3,二者是等价的。

如果系统中同时安装了Python2和Python3,则pip默认给Python2用,pip3指定给Python3用。 

Xlrd 库简单的使用

以如下excel文件为例进行操作

文件名为demo,有两个sheet,名为工作表1和工作表2

工作表1中有如下数据

如何在Python对Excel进行读取

简单的使用

# coding=utf-8

import xlrd

# 打开文件
data = xlrd.open_workbook('file/demo.xlsx')

# 查看工作表
data.sheet_names()
print("sheets:" + str(data.sheet_names()))

# 通过文件名获得工作表,获取工作表1
table = data.sheet_by_name('工作表1')

# 打印data.sheet_names()可发现,返回的值为一个列表,通过对列表索引操作获得工作表1
# table = data.sheet_by_index(0)

# 获取行数和列数
# 行数:table.nrows
# 列数:table.ncols
print("总行数:" + str(table.nrows))
print("总列数:" + str(table.ncols))

# 获取整行的值 和整列的值,返回的结果为数组
# 整行值:table.row_values(start,end)
# 整列值:table.col_values(start,end)
# 参数 start 为从第几个开始打印,
# end为打印到那个位置结束,默认为none
print("整行值:" + str(table.row_values(0)))
print("整列值:" + str(table.col_values(1)))

# 获取某个单元格的值,例如获取B3单元格值
cel_B3 = table.cell(3,2).value
print("第三行第二列的值:" + cel_B3)

运行后结果

如何在Python对Excel进行读取

项目中使用

获得所有的数据

# coding=utf-8

import xlrd

def read_xlrd(excelFile):
 data = xlrd.open_workbook(excelFile)
 table = data.sheet_by_index(0)

 for rowNum in range(table.nrows):
  rowVale = table.row_values(rowNum)
  for colNum in range(table.ncols):
   if rowNum > 0 and colNum == 0:
    print(int(rowVale[0]))
   else:
    print(rowVale[colNum])
  print("---------------")

 # if判断是将 id 进行格式化
 # print("未格式化Id的数据:")
 # print(table.cell(1, 0))
 # 结果:number:1001.0


if __name__ == '__main__':
 excelFile = 'file/demo.xlsx'
 read_xlrd(excelFile=excelFile)

结果

如何在Python对Excel进行读取

如果在项目中使用则可将内容方法稍为做修改,获得所有的数据后,将每一行数据作为数组进行返回

# coding=utf-8

import xlrd

def read_xlrd(excelFile):
 data = xlrd.open_workbook(excelFile)
 table = data.sheet_by_index(0)
 dataFile = []

 for rowNum in range(table.nrows):
  # if 去掉表头
  if rowNum > 0:
   dataFile.append(table.row_values(rowNum))

 return dataFile


if __name__ == '__main__':
 excelFile = 'file/demo.xlsx'
 print(read_xlrd(excelFile=excelFile))

结果

如何在Python对Excel进行读取

以上就是如何在Python对Excel进行读取的详细内容,更多关于python对Excel读取的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python日期操作学习笔记
Oct 07 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
Nov 20 Python
python实现机器学习之多元线性回归
Sep 06 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
使用pytorch实现可视化中间层的结果
Dec 30 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
python实现mean-shift聚类算法
Jun 10 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
opencv 查找连通区域 最大面积实例
Jun 04 #Python
Python中的Cookie模块如何使用
Jun 04 #Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 #Python
Python中的全局变量如何理解
Jun 04 #Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 #Python
Python urllib2运行过程原理解析
Jun 04 #Python
Python如何生成xml文件
Jun 04 #Python
You might like
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
简单实现php上传文件功能
2017/09/21 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
Angular6项目打包优化的实现方法
2019/12/15 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python并发2之使用asyncio处理并发
2017/12/21 Python
python实现log日志的示例代码
2018/04/28 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
一套VC试题
2015/01/23 面试题
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
护士辞职信模板
2014/01/20 职场文书
中国入世承诺
2014/04/01 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
辩护词范文大全
2015/05/21 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
24年收藏2000多部退役军用电台
2022/02/18 无线电