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爬虫
Dec 25 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
Python实现快速计算词频功能示例
Jun 25 Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Python telnet登陆功能实现代码
Apr 16 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伪造Referer请求反盗链资源
2019/01/24 PHP
JS控制表格隔行变色
2006/06/26 Javascript
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
JavaScript 数组详解
2013/10/10 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
Python实现的多线程http压力测试代码
2017/02/08 Python
Python 爬虫图片简单实现
2017/06/01 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
Etam德国:内衣精品店
2019/08/25 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
项目建议书格式
2014/03/12 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
团代会开幕词
2015/01/28 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python