python对Excel的读取的示例代码


Posted in Python onFebruary 14, 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 相关文章推荐
Python学习之asyncore模块用法实例教程
Sep 29 Python
python操作sqlite的CRUD实例分析
May 08 Python
Python从MP3文件获取id3的方法
Jun 15 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
Spring实战之使用util:命名空间简化配置操作示例
Dec 09 Python
python实现监控阿里云账户余额功能
Dec 16 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
pandas分组聚合详解
Apr 10 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 Python
Python安装依赖(包)模块方法详解
Feb 14 #Python
python 项目目录结构设置
Feb 14 #Python
wxpython自定义下拉列表框过程图解
Feb 14 #Python
python3中使用__slots__限定实例属性操作分析
Feb 14 #Python
python 命名规范知识点汇总
Feb 14 #Python
wxPython修改文本框颜色过程解析
Feb 14 #Python
python中提高pip install速度
Feb 14 #Python
You might like
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
jQuery实现增删改查
2020/12/22 jQuery
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python删除过期文件的方法
2015/05/29 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
通信专业个人自我鉴定
2013/10/21 职场文书
职务聘任书范文
2014/03/29 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
实习单位意见
2015/06/04 职场文书
导游词之山东八大关
2019/12/18 职场文书
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android
php解析非标准json、非规范json的方式实例
2022/05/10 PHP