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实现k均值算法示例(k均值聚类算法)
Mar 16 Python
Python正则捕获操作示例
Aug 19 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
python如何导入依赖包
Jul 13 Python
python中如何对多变量连续赋值
Jun 03 Python
python脚本框架webpy的url映射详解
Nov 20 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python三元运算实现方法
2015/01/12 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
python实现分页效果
2017/10/25 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
淘宝好评语大全
2014/05/05 职场文书
乐山大佛导游词
2015/02/02 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle