原文:

http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html

引言:

  实际工作中,可能很多情况下都会用到excel表格,像如果不需要很正规的用例工具来管理用例的话,大多公司选择直接用excel来管理用例;包括api自动化测试在设计接口的测试用例时,一般会先将接口的url、方法、参数、报文、接口描述等用excel维护起来,然后再从excel表格中读取这些接口信息;

实际的使用步骤如下:

1.安装xlrd模块:

  很简单吧,pip install xlrd即可;

2.导入模块

  import xlrd

3.打开Excel文件读取数据,创建文件对象赋值给workfile

  workfile = xlrd.open_workbook('excelFile.xlsx')

4.获得一个工作表(sheet),创建一个表格对象赋值给变量table,三种方法:

  table = workfile.sheets()[0]          #通过索引顺序获取

  table = workfile.sheet_by_index(0) #通过索引顺序获取

  table = workfile.sheet_by_name(u'Sheet1')#通过名称获取

5.获取整行和整列的值(列表)

  table.row_values(0)  #获取第一行的值,以列表形式返回

  table.col_values(0)  #获取第一列的值,以列表形式返回

6.获取行数和列数

  nrows = table.nrows

   ncols = table.ncols
 
7.根据行数编列所有行的数据
  for i in range(nrows):
    print(table.row_values(i))
 
8.获取指定单元格的数据,注意行和列的索引值都是从0开始
  cell_A1 = table.cell(0,0).value  #表格中A1位置的数据
  cell_C4 = table.cell(2,3).value  #表格中C4位置的数据
 
9.使用行列索引确定指定单元格的数据
  cell_A1 = table.row(0)[0].value  #表格中第1行第1个位置
  cell_A2 = table.col(1)[0].value  #表格中第2列第一个位置
 
10.简单的写入,table.put_cell()
  help一下table.put_cell(),可以了解到put_cell()方法有5个参数:rowx, colx, ctype, value, xf_index
  (1) rowx    # 要写的行索引
  (2) colx    # 要写的列索引
  (3) ctype    # 要写的值的类型: 0 empty, 1 string,  2 number,  3 date,  4 boolean,  5 error
  (4) value    # 要写入的值的数据
  (5) xf_index  # 扩展的格式化,默认是0
>>> table.put_cell(, , , )
>>> table.cell(, ).value
'python'
>>> 

11.不需要关闭文件对象,workfile文件对象没有close()方法

  

12.xlrd应用代码实例

# -*- coding: utf- -*-
import  xdrlib ,sys
import xlrd
def open_excel(file= 'file.xls'):
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception,e:
        print str(e)
#根据索引获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_index:表的索引
def excel_table_byindex(file= ,by_index=):
    data = open_excel(file)
    table = data.sheets()[by_index]
    nrows = table.nrows #行数
    ncols = table.ncols #列数
    colnames =  table.row_values(colnameindex) #某一行数据
    list =[]
    ,nrows):

         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i]
             list.append(app)
    return list

#根据名称获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_name:Sheet1名称
def excel_table_byname(file= ,by_name=u'Sheet1'):
    data = open_excel(file)
    table = data.sheet_by_name(by_name)
    nrows = table.nrows #行数
    colnames =  table.row_values(colnameindex) #某一行数据
    list =[]
    ,nrows):
         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i]
             list.append(app)
    return list

def main():
   tables = excel_table_byindex()
   for row in tables:
       print row

   tables = excel_table_byname()
   for row in tables:
       print row

if __name__=="__main__":
    main()

python操作excel表格文件--使用xlrd模块的更多相关文章

  1. python操作excel表格详解(xlrd/xlwt)

    http://www.2cto.com/kf/201501/373655.html http://blog.csdn.net/b_h_l/article/details/17001395 利用pyth ...

  2. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  3. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  4. 转载:python操作excel表格(xlrd/xlwt)

    python操作excel表格(xlrd/xlwt)   最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而 ...

  5. python - 操作excel表格

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  6. Python 利用Python操作excel表格之xlwt介绍

    利用Python操作excel表格之xlwt介绍   by:授客 QQ:1033553122 直接上代码   案例1 #!/usr/bin/env python # -*- coding:utf-8 ...

  7. python读取Excel表格文件

    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...

  8. Python 利用Python操作excel表格之openyxl介绍Part2

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart()    ...

  9. Python 利用Python操作excel表格之openyxl介绍Part1

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...

随机推荐

  1. linux进程概论

    1操作系统几大模块 进程管理,进程调度,进程间通讯机制,内存管理,中断异常处理,文件系统,I/O系统,网网络部分. 2操作系统的目的 管理硬件设备,为上层应用程序提供良好的执行环境. 3linux系统 ...

  2. IOS-网络(大文件下载)

    一.不合理方式 // // ViewController.m // IOS_0131_大文件下载 // // Created by ma c on 16/1/31. // Copyright © 20 ...

  3. 【转】powerdesigner 数据类型与数据库数据类型对应

    The following numeric data types are available: Standard data type DBMS-specific physical data type ...

  4. 201621123010 《Java程序设计》第1周学习总结

    1. 本周学习总结 本周主要学习了五个知识点 Java是面向对象的语言 JDK,JRE,JVM的联系 javac及java指令 Java跨平台运行的原理 新概念:类,类是面向对象中的概念 2. 书面作 ...

  5. PHP write byte array to file

    /********************************************************************************* * PHP write byte ...

  6. Nginx 设置rewrite规则是遇到的一个{}大括号引发的报错问题

    一个群友提到: 用nginx image_filter模块裁图,用!拼宽高能够实现,现在想用参数传宽高总是报错,配置如下:   location ~ ^/images/.* {     if ( $q ...

  7. Python基础知识记录

    1.去除空格 strip()  删除两边的空格.lstrip() 删除左边的空格.rstrip() 删除右边的空格 2.字符串的连接 s1='abc'  s2='cdf' s3=s1+s2    pr ...

  8. gcc编译把警告都输出成错误

    -Werror 把所有警告转换为错误,以在警告发生时中止编译过程

  9. java并发回答

    java 线程安全比较重要的点:   在 java 编程中,记住这些关键点可以帮你避免一些严重的并发问题,比如条件竞争或死锁.   1).不可变对象默认是线程安全的,因为他们一旦被创建就不会被修改.比 ...

  10. bzoj 3328 PYXFIB——单位根反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演主要就是有 \( [k|n] = \frac{1}{k}\sum\limit ...