解決“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一文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章