python操作excel主要用到xlrd和xlwt這兩個(gè)庫(kù)楞黄,即xlrd是讀excel谷市,xlwt是寫(xiě)excel的庫(kù)
安裝:pip install xlrd
導(dǎo)入:import xlrd
具體使用方法如下:
打開(kāi)excel文件:xlrd.open_workbook(filename)
如果路徑或者文件名中有中文的話,加上r即可:xlrd.open_workbook(r"filename")
獲取所有sheet名:sheet_names( )躬审。將所有的sheet名存放到數(shù)組中輸出
根據(jù)sheet索引或者名稱獲取每張sheet表里的數(shù)據(jù)內(nèi)容:sheet_by_index( 索引值 )、sheet_by_name("sheetname")。
excel里的索引值都從0開(kāi)始
這倆輸出結(jié)果是一致的
獲取指定sheet頁(yè)的名稱月匣、行數(shù)、列數(shù)
獲取整行的值:row_values( 索引值 )? ? ? 獲取整列的值:col_values( 索引值 )? ——> 都以數(shù)組形式返回?cái)?shù)據(jù)
此處注意称诗,我們輸出結(jié)果里面數(shù)字是保留了一位小數(shù)的萍悴,那如果我們想直接輸出整數(shù)如何處理呢?百度了好久都需要自己寫(xiě)個(gè)函數(shù)轉(zhuǎn)一下,能更改excel里的數(shù)據(jù)格式直接讀出來(lái)就是int型嗎癣诱?而且我發(fā)現(xiàn)计维,如果直接讀取那個(gè)數(shù)據(jù)其實(shí)是int型,但是寫(xiě)入數(shù)組里就變成浮點(diǎn)型了撕予,誰(shuí)能告知一下
獲取單元格對(duì)象:cell( 行的索引值鲫惶,列的索引值 )
獲取單元格值的數(shù)據(jù)類型:cell( 行的索引值,列的索引值 ).ctype
ctype返回值對(duì)應(yīng)的數(shù)據(jù)類型是: 0 - empty澜术, 1 - string, 2 - number鸟废, 3 - date, 4 - boolean盒延, 5 - error
獲取某個(gè)單元格的值:cell_value( 行的索引值计露,列的索引值 )/cell( 行的索引值,列的索引值 ).value/row(?行的索引值?)[ 列的索引值 ].value
#逐行讀取excel文件
file = xlrd.open_workbook("XX.xlsx")
table_data = file.sheets()[0]
rows = table_data.nrows
for i in range(rows):
row_value = table_data.row_values(i)
print(row_value)