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的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
Python实现图片转字符画的示例
Aug 22 Python
Flask数据库迁移简单介绍
Oct 24 Python
python re模块findall()函数实例解析
Jan 19 Python
详解Python 正则表达式模块
Nov 05 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
Python中threading库实现线程锁与释放锁
May 17 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
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
vue监听input标签的value值方法
2018/08/27 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
Python中functools模块的常用函数解析
2016/06/30 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
详解小白之KMP算法及python实现
2019/04/04 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
公司新年寄语
2014/04/04 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
Redis数据同步之redis shake的实现方法
2022/04/21 Redis