小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【python】解析Excel中使用xlrd庫(kù)、xlwt庫(kù)操作,讀取Excel文件詳解(一)

 暗夜精靈fdznnm 2020-12-21

上文提供了Excel文件讀寫操作的基本模板,本文進(jìn)一步詳解這兩個(gè)模塊的功能。

一、Book(class)
由xlrd.open_work(“example.xls”)返回

  • nsheets: sheets數(shù)
  • sheet_names: sheet名稱列表
  • sheets: sheet列表
  • sheet_by_index(sheetx): 按序號(hào)提取sheet
  • sheet_by_name(sheet_name): 按名稱提取sheet

二、Sheet(class)
由Book object相關(guān)方法返回

  • name:sheet名
  • nrows: 行數(shù)
  • ncols: 列數(shù)
  • cell(rowx,colx):第rows行colx列的單元格
  • cell_type(rowx,colx): 數(shù)據(jù)類型
  • cell_value(rows,colx): 數(shù)值
  • col(colx): 第colx列所有單元格組成的列表
  • col_slice(colx,start_rowx=0,end_rowx=None): 第colx列指定單元格組成的列表
  • col_types(colx,start_rowx=0,end_rowx=None): 第colx列指定單元格數(shù)值類型組成的列表
  • col_values(colx,start_rowx=0,end_rowx=None): 第colx列指定單元格數(shù)值組成的列表
  • row同樣有col的各項(xiàng)操作,此處略去

三、Cell(class)
由Sheet object(s)相關(guān)方法返回

  • ctype: 一個(gè)int型變量,對(duì)應(yīng)不同的數(shù)值類型

  • value: 單元格的值

四、xlrd模塊使用詳解
1、導(dǎo)入模塊

In [1]: import xlrd

2、打開Excel文件讀取數(shù)據(jù)

In [2]: data = xlrd.open_workbook('sample.xls')

In [3]: data
Out[3]: <xlrd.book.Book at 0x21df9f4a198>

3、使用技巧

# 獲取一個(gè)工作表,index_number表示表的索引號(hào),索引號(hào)從0開始,表示第一張表,1表示第二張表,依次類似。
# table = data.sheets()[index_number]          
# 1、通過索引順序獲取
In [4]: tables = data.sheets()
In [5]: tables
Out[5]: [<xlrd.sheet.Sheet at 0x21df9f5bcc0>]
In [6]: tables[0]
Out[6]: <xlrd.sheet.Sheet at 0x21df9f5bcc0>
#若果有兩個(gè)表格的情況,sheets會(huì)得到兩個(gè)表的地址
In [7]: data2 = xlrd.open_workbook('sample2.xls')
In [9]: data2.sheets()
Out[9]: [<xlrd.sheet.Sheet at 0x21df9f62fd0>, <xlrd.sheet.Sheet at 0x21df9f62f98>]


#table = data.sheet_by_index(index_number) 
#2、通過索引順序獲取,index_number表示表的索引號(hào),索引號(hào)從0開始,表示第一張表,1表示第二張表,依次類似。
In [10]: data2.sheet_by_index(0)
Out[10]: <xlrd.sheet.Sheet at 0x21df9f62fd0>


3、table = data.sheet_by_name(sheet_name)
#通過名稱獲取,sheet_name表示工作表的名字,但是需要注意的是這個(gè)表明的字符串需要使用Unicode的字符串,如:u'xxx'
In [11]: data2.sheet_by_name('sample')
Out[11]: <xlrd.sheet.Sheet at 0x21df9f62fd0>

獲取整行和整列的值(數(shù)組)

#獲取行的值
#table.row_values(row_index)
In [12]: table = data2.sheet_by_name('sample')
In [13]: table.row_values(0)
Out[13]: ['netcon', 'conw.net']

#獲取列的值
#table.col_values(i)
In [14]: table.col_values(0)
Out[14]: ['netcon']

獲取行數(shù)和列數(shù)  

#獲取行數(shù)
#nrows = table.nrows 
In [16]: table.nrows
Out[16]: 1
#獲取列數(shù)
#ncols = table.ncols
In [17]: table.ncols
Out[17]: 2

循環(huán)行列表數(shù)據(jù)

In [18]: for i in range(table.nrows):
    ...:     print(table.row_values(i))
    ...:
['netcon', 'conw.net']

單元格

#根據(jù)行列的位置去單元格的數(shù)據(jù)
In [19]: cell_a1 = table.cell(0,0)

In [20]: cell_a1
Out[20]: text:'netcon'

In [21]: cell_a1.dump
Out[21]: <bound method BaseObject.dump of text:'netcon'>
#取出單元格的數(shù)值
In [22]: cell_a1.value
Out[22]: 'netcon'

使用行列索引

#通過行進(jìn)行數(shù)據(jù)的獲取
In [23]: cell_A1 = table.row(0)
In [24]: cell_A1
Out[24]: [text:'netcon', text:'conw.net']
In [25]: cell_A1[0]
Out[25]: text:'netcon'
In [27]: cell_A1[0].value
Out[27]: 'netcon'

#通過列進(jìn)行數(shù)據(jù)的獲取
In [28]: cell_A1 = table.col(0)[0].value
In [29]: cell_A1
Out[29]: 'netcon'

簡(jiǎn)單的寫入

row = 0
col = 0
# 類型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1 
value = '單元格的值'
xf = 0 # 擴(kuò)展的格式化
#將‘單元格的’寫入到Excel中,使用put_cell寫入
In [31]: table.put_cell(1,1,1,'單元格的',0)

In [32]: table.cell(1,1).value
Out[32]: '單元格的'

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多