Pythonのxlrdモジュールの詳細

5456 ワード

1、常用セルのデータ型
♦ 0.empty(空)、1 string(text)、2 number、3 date、4 boolean、5 error、6 blank(空白表)
2、モジュールのインポート
import xlrd 3、Excelファイルを開いてデータを読み込む
data = xlrd.open_workbook(filename)#ファイル名およびパス.パスまたはファイル名に中国語がある場合は、前にrバイエルン原生文字を追加します.
4、よく使う関数
   ♦ excel         book sheet   

  1)  book      

table = data.sheets()[0]#インデックス順で取得
table = data.sheet_by_index(sheet_indx)#インデックス順で取得
table = data.sheet_by_name(sheet_name)#名前で取得
以上の3つの関数はいずれも1つの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値を取得した後、行と列、セルの操作を行います.
♦ pythonはopen()関数、xlrdを解決する.open_workbook()関数ファイル名には中国語が含まれ、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’)
2.xlrdモジュールを使用する理由  ♦UIオートメーションまたはインタフェースオートメーションでは、データメンテナンスがコアとなるため、このモジュールは非常に実用的です.
3.xlrdモジュールの使い方  ♦例を挙げてみましょう.
Python SeleniumのExcelデータメンテナンスアカウントとパスワードをExcelから読み出す例を挙げて呼び出します.
1.Excelを作成上記で入力したユーザー名とパスワードをパラメータ化し、これらのデータがExcelファイルから読み出されるようにします.Excelファイルの名前をdataとします.xlsxは、2列のデータがあり、第1列はusername、第2列はpasswordです.
2.Excelコードの読み出し
#--coding:utf-8--import xlrd,time,sys,unittest#xlrdなどの関連モジュールclass Data_をインポートExcel(unittest.TestCase):データにカプセル化Excelクラスの中では後でfileを使うのが便利です.addrec = r’C:\Users\liqiang22230\Desktop\date.xlsx’#定義date.xlsxデータメンテナンスExcelのパスファイルdef open_excel(self,file = file_addrec):#file = file_addrec#classでdefにself try:#検査ファイルがselfに取得されているかどうかを必ず持参することに注意する.data =xlrd.open_workbook(file) return self.data except Exception : print(file) print(‘eero’) def excel_table_byindex(self,file=file_addrec,colnameindex=0,by_index="ユーザテーブル"):#この読み出しExcelをexcel_にカプセル化するtable_byindex関数では、この場合3つのパラメータ1が必要です.ファイル2.sheet名、列が存在する行数self.data = xlrd.open_workbook(file)#Excelデータselfを取得する.table = self.data.sheet_by_name(by_index)#sheet_を使用by_nameはsheetページのユーザーテーブルというsheetオブジェクトデータselfを取得する.colnames = self.table.row_values(colnameindex)#取得行数の下に0と表示する第1行Excelの第1行のすべてのデータ値self.nrows = self.table.nrows#すべての有効行数を得るlist=[]#の全体的な考え方は、Excelのデータを辞書の形で文字列に存在する辞書をリスト要素for rownum in range(1,self.nrows):row=self.table.row_values(rownum)#すべての行数の各行のデータ値if row:app={}#は主に{‘name’:‘zhangsan’,‘password’:12324.0}で、辞書の中のどれだけの要素が主にどれだけの列for i in range(len(self.colnames):#このExcelでは、列がある行に2つのデータがあります.だから1行を循環しないでこの2つのデータをキーにして、行数の値をキーの値にして、1つの辞書の中でapp[self.colnames[i]=row[i]list.に保存しますappend(app) print(list) return list a = Data_Excel() a.excel_table_byindex() if name==“main”: unittest.main()の実行結果は次のとおりです.
Testing started at 15:47 … [{‘name’: ‘zhangsan’, ‘password’: 12324.0}, {‘name’: ‘zhangsan’, ‘password’: 12324.0}, {‘name’: ‘lisi’, ‘password’: 923848.0}, {‘name’: ‘lisi’, ‘password’: 923848.0}, {‘name’: ‘wangmazi’, ‘password’: 213123.0}, {‘name’: ‘wangmazi’, ‘password’: 213123.0}]
Process finished with exit code 0 Empty test suite. 3.Excelコードの呼び出しは以下の通りです.
def Login(self): listdata = excel_table_byindex("E:data.xlsx",0)#は2つのパラメータ1を入力.ファイルパス2.1行目の下付きif(len(listdata)<=0):#listリストにデータassert 0があるか否かを判断し、u"Excelデータ異常"for i in range(0,len(listdata):#list中のすべての辞書selfをループ.driver = webdriver.Chrome() self.driver.get(“http://www.effevo.com”) assert “effevo” in self.driver.title#ログインボタンselfをクリックします.driver.find_element_by_xpath(".//*[@id=‘home’]/div/div[2]/header/nav/div[3]/ul/li[2]/a").click() time.sleep(1)
            self.driver.find_element_by_id('passname').send_keys(listdata[i]['username'])#  list     i     username  
            self.driver.find_element_by_id('password').send_keys(listdata[i]['password'])#  list     i     password  
            self.driver.find_element_by_xpath(".//*[@id='content']/div/div[6]/input").click()

            time.sleep(2)

self.driver.close()
深センのウェブサイトの建設www.sz 886.com