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中使用HTML模版的教程
Apr 29 Python
Python pandas常用函数详解
Feb 07 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
Python实现修改IE注册表功能示例
May 10 Python
python微信公众号之关键词自动回复
Jun 15 Python
Python交互环境下实现输入代码
Jun 22 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
python实现ROA算子边缘检测算法
Apr 05 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在Web开发领域的优势
2006/10/09 PHP
在 PHP 中使用随机数的三个步骤
2006/10/09 PHP
三个类概括PHP的五种设计模式
2012/09/05 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
Vue Socket.io源码解读
2018/02/07 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
大学毕业登记表自我鉴定
2013/10/09 职场文书
医学生职业规划范文
2014/01/05 职场文书
年度考核自我鉴定
2014/03/19 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
护士辞职信怎么写
2015/02/27 职场文书
贷款收入证明范本
2015/06/12 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang