原文:

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. Vue.js系列之项目搭建(1)

    项目搭建具体步骤如下: 1.安装node 到官网下载安装,我这里是win7系统. (中)https://nodejs.org/zh-cn/ (英)https://nodejs.org/en/ 2.安装 ...

  2. Confluence 6 使用一个页面为站点的默认页面

    如果你希望有更多的控制,你可以选择一个 Confluence 的原始页面为你的站点载入页面来替换掉将用户发到主面板中.请查 Configuring the Site Home Page 页面来查看更多 ...

  3. Java线程状态分析

    Java线程的生命周期中,存在几种状态.在Thread类里有一个枚举类型State,定义了线程的几种状态,分别有: NEW: 线程创建之后,但是还没有启动(not yet started).这时候它的 ...

  4. 本地Run Page时报检测到意外的 URL 参数,它将被忽略。

    经查,是因为我RUN的时候 Target URL -- http://MY-PC:8988/OA_HTML/runregion.jsp 将MY-PC更改为本地IP即可. 设置方法 Tools - Em ...

  5. Newtonsoft.Json JsonHelper

    Json.net 简单封装 using System; using System.Linq; using Newtonsoft.Json; using Newtonsoft.Json.Serializ ...

  6. -webkit新属性 image-set和srcset

    响应式图片的作用: 为使用不同分辨率的不同浏览器用户提供适合其浏览环境的图片大小的解决方案. 之前的解决方法是使用@media 但是-webkit新提出的image-set和srcset同样可以解决问 ...

  7. 理解 python 装饰器

    变量 name = 'world' x = 3 变量是代表某个值的名字 函数 def hello(name): return 'hello' + name hello('word) hello wor ...

  8. 折叠纸片PFold.js

    PFold.js是一款折叠纸片插件,支持定义折叠纸牌数量.折叠动画效果.折叠方向,而且还支持折叠结束后回调方法. 在线实例 效果一 效果二 效果三 使用方法 <div id="uc-c ...

  9. 使用C++实现二叉搜索树的数据结构

    需要注意的地方: ①二叉搜索树删除一个指定结点R,若R为叶子结点,则将R的父结点中指向R的指针改为指向nullptr:若R的左右子结点一个为空,一个非空,则将R的父结点中指向R的指针改为指向R的非空子 ...

  10. alsa-lib、alsa-utils移植

    /************************************************************************** * alsa-lib.alsa-utils移植 ...