如何在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编写生成验证码的脚本的教程
May 04 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
Python3 JSON编码解码方法详解
Sep 06 Python
python应用文件读取与登录注册功能
Sep 23 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python响应对象text属性乱码解决方案
Mar 31 Python
深入了解Python 变量作用域
Jul 24 Python
Python中logger日志模块详解
Aug 04 Python
python之随机数函数的实现示例
Dec 30 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
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
PHP加密解密函数详解
2015/10/28 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
Maps Javascript
2007/01/22 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
js html实现计算器功能
2018/11/13 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
温泉秘密:Onsen Secret
2020/07/06 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
实习生自我评价
2014/01/18 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
离婚代理词范文
2015/05/23 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle