解决“Unresolved import:pyExcelerator,xlwt,xlrd”报错问题 && pyExcelerator,xlwt,xlrd的简单介绍

我是在自己搭建完Eclipse+Python+Android SDK的Android自动化测试环境之后,在调试一个自动化测试脚本时,发现的该问题。在引入pyExcelerator,xlwt,xlrd时报错,但是此时我已经安装了python模块,等我去安装路径下查看,发现库文件夹里没有这三种库,所以解决这个问题的办法就是去安装pyExcelerator,xlwt,xlrd即可。

安装这三个库很简单,以xlwt为例。先去https://pypi.python.org/pypi/xlwt/下载安装包,将安装包解压放到已安装的Python\Lib文件夹下,cmd下切换到Python\Lib\xlwt路径下,执行“python setup.py install”安装成功,对应的报错也会消失。

还有更简单得一种方法,就是先在python下安装上pip,然后直接在cmd上用pip install xlwt,pip install xlrd即可安装,简单来讲pip就是python下一个很简单得自动安装包的命令。

pyExcelerator,xlwt,xlrd三个库都是用来对excel表进行操作的。下面,简单介绍这三个库的作用:

pyExcelerator:写入excel(也具备读的能力)

xlwt:写入excel

xlrd:读取excel(也具备写的能力)

  • pyExcelerator库

pyExcelerator读取数据不方便,因为它不提供表格的行数、列数、单元格数据类型等关键信息的访问接口,也不支持空数据的存在,因此你没法对它进行循环操作。它读取数据的机制是这样的:sheets=parse_xls(filename)  这个sheets返回的是一个列表,每一项是一张sheet的数据,每一项本身是一个二元组的数据结构(表名,单元格数据),单元格数据又是一个字典结构,key是单元格的索引(i,j),value是单元格的数据。总结一下,如果你想获取此excel文件的第N张工作表的第i行第j列的单元格数据,则应该是这样:sheets[n][1][(i,j)]。

而当要将数据写入excel时,我们就可以使用pyExcelerator来操作,很方便,下面是一个栗子:

from pyExcelerator import *
w=Workbook()  #创建工作簿
ws=w.add_sheet('Sheet1')  #添加工作表
ws.write(i,j,value)  #写入单元格   
w.save('book.xls')
  • xlwt库

xlwt只能创建一个全新的excel文件,然后对这个文件进行写入及保存。但是大多数情况我们希望读入一个excel文件,再进行修改或者追加,这时还有一个xlutils可以用。下面时写入数据的一个栗子:

# 导入xlst模块
import xlwt
 
# 创建 Workbook
wb = xlwt.Workbook()
 
# 创建 worksheet
ws = wb.add_sheet('test_sheet')
 
# 写入第一行内容  ws.write(a, b, c)  a:行,b:列,c:内容
ws.write(0, 0, '球队')
ws.write(0, 1, '号码')
ws.write(0, 2, '姓名')
ws.write(0, 3, '位置')
 
# 保存文件
wb.save('./myExcel.xls')
  • xlrd库

相比之下,xlrd库读取数据则要方便的多,下面是一个栗子:

import xlrd
wb = xlrd.open_workbook('book.xls')  #打开文件
sh = wb.sheet_by_index(0) #获得工作表的方法1
sh = wb.sheet_by_name('Sheet1') #获得工作表的方法2
cellA1Value = sh.cell_value(i, j) #获得单元格数据
columnValueList = sh.col_values(i) #获得一列的数据
row_count=sh.nrows #获得行数
col_count=sh.ncols  #获得列数

要注意的是:xlrd库目前似乎还不支持excel2007版本,故使用时要注意处理的excel文件版本。

以上部分内容来源自https://blog.csdn.net/nachuang/article/details/8849770一文。

©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页