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实现电子词典
Apr 23 Python
Python中splitlines()方法的使用简介
May 20 Python
Python赋值语句后逗号的作用分析
Jun 08 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
python自动点赞功能的实现思路
Feb 26 Python
Python列表如何更新值
May 27 Python
Selenium 安装和简单使用的实现
Dec 04 Python
python中@property的作用和getter setter的解释
Dec 22 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 Python
Python各协议下socket黏包问题原理
Apr 12 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
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
Django自带的用户验证系统实现
2020/12/18 Python
UNIX文件系统分类
2014/11/11 面试题
2014年党员公开承诺践诺书
2014/03/25 职场文书
廉洁使者实施方案
2014/03/29 职场文书
医院义诊活动总结
2014/07/04 职场文书
放飞理想演讲稿
2014/09/09 职场文书
十岁生日答谢词
2015/01/05 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
判断Python中的Nonetype类型
2021/05/25 Python
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技
MySQL数据库 任意ip连接方法
2022/05/20 MySQL