一、安装xlrd模块

二、excel读取操作

1.常用的函数

  • excel中最重要的方法就是book和sheet的操作

1)获取book中一个工作表

#coding=utf-8

import xlrd

data = xlrd.open_workbook("d:\\test.xls")   #打开excel文件
print (data.sheets()[0])       #通过索引顺序获取sheet对象
print (data.sheet_by_index(0))    #通过索引顺序获取sheet对象
print (data.sheet_by_name("Sheet1"))      #通过名称获取sheet对象
print (data.sheet_names())     #返回book中所有工作表的名字

#结果如下

-->    <xlrd.sheet.Sheet object at 0x0000000003D969B0>
-->    <xlrd.sheet.Sheet object at 0x0000000003D969B0>
-->    <xlrd.sheet.Sheet object at 0x0000000003D969B0>
-->    [u'Sheet1', u'Sheet2', u'Sheet3']
#coding=utf-8

import xlrd

book = xlrd.open_workbook("C:\\Users\\Administrator\\Desktop\\aaa.xls")
sheet = book.sheets()[0]
#通过for循环遍历取出excel表中第一列所有的数据
for i in range(sheet.nrows):
    print (sheet.row_values(i)[0])

  2)行的操作

  • nrows    #获取该sheet中的有效行数
  • row(row_index)    #返回由该行中所有的单元格对象组成的列表
  • row_slice(row_index, start_colx=0, end_colx=None)    #默认返回由该行中所有的单元格对象组成的列表(结果只能返回end_colx前值)  
  • row_values(row_index, start_colx=0, end_colx=None)     #默认返回由该行中所有单元格的数据组成的列表(结果只能返回end_colx前值)
  • row_len(index)   #返回该行的有效单元格长度
#coding=utf-8

import xlrd

data = xlrd.open_workbook("d:\\test.xls")
sheet = data.sheets()[0]
print (sheet.nrows)       #获取该sheet中的有效行数
print (sheet.row(0))      #返回由该行中所有的单元格对象组成的列表
print (sheet.row_slice(0))    #默认返回由该行中所有的单元格对象组成的列表
print (sheet.row_values(0,1))   #默认返回由该行中所有单元格的数据组成的列表
print (sheet.row_len(0))      #索引值为0的行中有效单元格有几个

#结果如下

-->    10
-->    [text:u'user1', text:u'pwd1']
-->    [text:u'user1', text:u'pwd1']
-->    [u'pwd1']
-->    2

3)列(colnum)的操作

  • ncols   #获取列表的有效列数
  • col(col_index, start_rowx=0, end_rowx=None)  #默认返回由该列中所有的单元格对象组成的列表(结果只能返回end_rowx前值)  
  • col_slice(col_index, start_rowx=0, end_rowx=None)  #默认返回由该列中所有的单元格对象组成的列表(结果只能返回end_rowx前值)  
  • col_values(col_index, start_rowx=0, end_rowx=None)   #默认返回由该列中所有单元格的数据组成的列表(结果只能返回end_rowx前值)  
#coding=utf-8

import xlrd

data = xlrd.open_workbook("d:\\test.xls")
sheet = data.sheets()[0]
print (sheet.ncols)       #获取列表的有效列数
print (sheet.col(0,0,2))      #返回第一行和第二行的单元格对象组成的列表
print (sheet.col_slice(0,0,2))    #返回第一行和第二行的单元格对象组成的列表
print (sheet.col_values(0,0,2))   #返回第一行和第二行的单元格数据组成的列表

#结果如下

-->    2
-->    [text:u'user1', text:u'user2']
-->    [text:u'user1', text:u'user2']
-->    [u'user1', u'user2']

  4)单元格的操作

  • cell(row_index,col_index)   #返回单元格对象
  • cell_value(row_index,col_index)   #返回单元格中的数据
#coding=utf-8

import xlrd

data = xlrd.open_workbook("d:\\test.xls")
sheet = data.sheets()[0]
print (sheet.cell(0,0))       #返回第一行第一列单元格对象
print (sheet.cell_value(0,0))     #返回第一行第一列单元格中的数据

#结果如下

-->    text:u'user1'
-->    user1

  5)读取excel方法封装

#coding=utf-8

import xlrd

class ReadExcel():

    def __init__(self,file,sheet_i):
        self.book = xlrd.open_workbook(file)
        self.sheet = self.book.sheet_by_index(sheet_i)

    def getValue(self,row_i,col_i):
        """
        获取excel单元格数据
        """
        return self.sheet.cell_value(row_i,col_i)

    def getRows(self):
        """
        获取有效行数
        """
        return self.sheet.nrows

    def getCols(self):
        """
        获取有效列数
        """
        return self.sheet.ncols

2.单元格是表格中行与列的交叉部分,它是组成表格的最小单位,可拆分或者合并。单个数据的输入和修改都是在单元格中进行的如:

注意:注意作用域问题,之前获取的sheet之后,都在获取到这个sheet值后,在进行,行和列以及单元格的操作。

问题现象:

  • 使用open()函数、xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录。
  • 获取sheet时若包含中文,也会报错。
#打开文件
file = open(filename,'rb')

#打开excel文件
workbook = xlrd.open_workbook(filename)

#获取sheet
sheet = workbook.sheet_by_name(sheetname)

解决方案:

  • 对参数进行转码即可。如:
filename = filename.decode('utf-8')
  • 也试过unicode函数,不过,在ride中运行时出现了报错,所以不赞成使用。
filename = unicode(filename,'utf-8')

python(读取excel操作-xlrd模块)的更多相关文章

  1. python(读取 excel 操作 xlrd 模块)

    一.安装 xlrd 模块 到 python 官网下载 http://pypi.python.org/pypi/xlrd 模块安装,前提是已经安装了 python 环境. 或者在 cmd 窗口  pip ...

  2. Python 读取Excel之xlrd篇

    上一期给大家分享了如何用Python读取文本,这次给大家分享如何读取Excel表格内容,拿最常见的.xlsx和.xls格式来讲解. 本章主要知识点有: 读取整篇excel返回list[list[lis ...

  3. Python学习笔记:读取Excel的xlrd模块

    一.安装xlrd 可以使用命令行安装也可使用pycharm进行安装 表示xlrd库已经安装成功,安装成功后,我们就可以导入使用了. 二.xlrd说明 (1.单元格常用的数据类型包括 0:empty(空 ...

  4. Python 读取Excel数据 xlrd

    #导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...

  5. 利用xlrd模块实现Python读取Excel文档

    # -*- coding: cp936 -*- #python读取excel import xlrd def main(): xls=xlrd.open_workbook("d:\\11.x ...

  6. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  7. Python对Excel操作详解

      Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl   ...

  8. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  9. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

随机推荐

  1. 008-linux shell vim使用

    一.概述 vi: Visual Interface 可视化接口 vim: VI iMproved VI增强版 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式) 输入模式 末行模式 模式转换 ...

  2. Python 精选文章

    操作Excel,通过宏调用Pyhton(VBA调Python) 第一个django项    https://www.jianshu.com/p/45b07d8cd819

  3. win10更改pip源

    摘自:https://blog.csdn.net/qq_31443999/article/details/88750833 win10安装TensorFlow卡崩更改为国内清华大学镜像源,即可. 具体 ...

  4. 【错误解决】git报错:you are not allowed to push code to protected branches on this project

    场景回忆: 本地修改需要退回到之前的版本,打算强制push本地版本覆盖远程版本,但是在git push --force后出现了以下的错误: Fix GitLab error: "you ar ...

  5. bat文件重命名指定路径下文件

    ren "E:\产品\Planning\C1-Planning11\C1-Planning11\target\123" 456 此命令是将文件123重命名为456 注意:456是文 ...

  6. Celery-管理与监控

    1. 监控和管理Workers 1.1 将celery实例放入shell [root@node2 app]# celery -A tasks shell Python 3.6.5 (default, ...

  7. SpringBoot配置热部署

    1.spring-boot-devtools 在pom中直接引入依赖 <dependency> <groupId>org.springframework.boot</gr ...

  8. Vmware解决虚拟机不能联网的问题

    1. 设置为NAT模式 2. 启动win7的服务,命令窗口输入services.msc 回车 3. 修改Vmware的设置

  9. 恋恋山城 Jean de Florette (1986) 男人的野心 / 弗洛莱特的若望 / 让·德·弗罗莱特 / 水源 下一部 甘泉,玛侬

    <让·德·弗洛莱特>电影剧本 文/[法]马赛尔·巴涅尔译/苏原 编者按:<让·德·弗洛莱特>和<甘泉,玛侬>是根据法国著名作家马赛尔·巴涅尔的同名小说改编的电影.马 ...

  10. CentOS7 初始化硬盘分区、挂载、重启自动挂载

    挂载硬盘设备到本地有一下步骤: 1.通过fdisk -l命令,查看硬盘信息 可以看到有两块磁盘/dev/vda和/dev/vdb vda是系统盘,vdb使我们新增的数据盘,在上图中其实已经挂载完成(设 ...