python打开excel表_用python读取excel表格

接口测试里我们经常需要对表格进行操作,因此有了下文整理:

一.xlrd模块的准备

在用Python操作excel时,我们需要先导入xlrd模块。

如果你没有安装过的话甚至需要安装一下,操作如下:

1.首先找到Python安装目录,下面有一个Scripts文件夹

2.在cmd里进入该目录下的Scripts文件夹中,即输入命令: cd 地址

3.继续输入命令:easy_install.exe pip,可以看到下图情形

4.最后输入命令:pip install xlrd 看到以下情形,安装成功!

二.动手写代码

一般对Excel表格进行读操作的话有:输出整个表,输出某一行(列)以及输出某一项具体单元格

首先,我们肯定需要给出excel表格存放路径,接着打开文件,一个Excel表格中可以有很多sheet,可以通过索引或者是直接通过sheet名去获取某一个sheet,然后就可以进行具体的读取操作啦

# coding: utf-8

import xlrd

# 写入excel路径

excel_path = r'D:\zhangzeqian3\Downloads\hhh.xls'

# 打开Excel

data = xlrd.open_workbook(excel_path)

# 查看Excel中的sheet名称

print (data.sheet_names())

# 通过索引或表名获取一个工作表:一个list

table = data.sheets()[0]

table1 = data.sheet_by_index(0) #选择一个工作表

table2 = data.sheet_by_name(u'地点')

print (table, table1, table2)

# 获取行数和列数

nrows = table.nrows

ncols = table.ncols

print (nrows,ncols)

# 获取整行和整列的值

print (table.row_values(1))

print (table.col_values(2))

# 循环行,得到索引的列表

for rn in range(table.nrows):

print (table.row_values(rn)) #将表完整打印出来

# 直接输单元格坐标,得到某一项值

cell_A1 = table.cell(0, 0).value #得到具体某项值

cell_A2 = table.cell(1, 0).value

print (cell_A1, cell_A2)

# 分别使用行列索引,找到某项值

cell_A3 = table.row(0)[0].value #得到具体某项值

cell_A4 = table.col(1)[1].value

print (cell_A3, cell_A4)

三.常用的函数

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

1)获取book中一个工作表

可用以下函数获取:

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

table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取

table = data.sheet_by_name(sheet_name)#通过名称获取 以上三个函数都会返回一个

xlrd.sheet.Sheet()对象 names = data.sheet_names() #返回book中所有工作表的名字

data.sheet_loaded(sheet_name or indx) # 检查某个sheet是否导入完毕

2)行的操作

nrows = table.nrows #获取该sheet中的有效行数

table.row(rowx) #返回由该行中所有的单元格对象组成的列表

table.row_slice(rowx) #返回由该列中所有的单元格对象组成的列表

table.row_types(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据类型组成的列表

table.row_values(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据组成的列表

table.row_len(rowx) #返回该列的有效单元格长度

3)列(colnum)的操作

ncols = table.ncols #获取列表的有效列数

table.col(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表

table.col_slice(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表

table.col_types(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据类型组成的列表

table.col_values(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据组成的列表

4)单元格的操作

table.cell(rowx,colx) #返回单元格对象

table.cell_type(rowx,colx) #返回单元格中的数据类型

table.cell_value(rowx,colx) #返回单元格中的数据

table.cell_xf_index(rowx, colx) # 暂时还没有搞懂

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

如:

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

四.问题现象:

♦1、使用open()函数、xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录。

♦2、获取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')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值