用XLRD批處理Excel

2021-08-02 20:58:31 字數 1916 閱讀 3839

xlrd的目的就是為了程式化處理excel檔案而生

xlrd是python的乙個模組

xlrd可以處理老式的xls和新式的xlsx的excel檔案,利用這個模組可以匯入excel工作簿中所有檔案。

import xlrd

defparse_file

(datafile):

workbook=xlrd.open_workbook(datafile)

#用於開啟工作簿

sheet=workbook.sheet_by_index(0)

#用於設定待處理的工作表,這裡選擇表0

data=[[sheet.cell_value(r,col)

for col in range(sheet.ncols)]

for r in range(sheet.nrows)]

#這段**是遍歷所有的行和所有的列,並將資料讀取成python列表[1]

[1]的進一步解釋

實際上這乙個語句類似於列表表示式

print ["{}_{}".format(i,j) for i in range(1,4) for j in range(1,4)]
或者寫成這樣

result=

for i in range(1,4):

for j in range(1,4):

print result

輸出結果如下所示

['1_1', '1_2', '1_3', '2_1', '2_2', '2_3', '3_1', '3_2', '3_3']
format函式介紹

格式化字串的函式str.format()

它通過{}和:來代替%。

「對映」示例

in [1]: ','.format('kzc',18) 

out[1]: 'kzc,18'

in [2]: '{},{}'.format('kzc',18)

out[2]: 'kzc,18'

in [3]: ',,'.format('kzc',18)

out[3]: '18,kzc,18'

通過關鍵字引數

in [5]: ','.format(age=18,name='kzc') 

out[5]: 'kzc,18'

for row in range(sheet.nrows):

for col in range(sheet.ncols):

if row == 50:

print sheet.cell_value(row, col)

#把第50行中的內容全部列印出來,但一次只列印一列

print sheet.nrows

#列印工作表中的行數

print sheet.cell_type(3, 2)

#列印第3行2列數的資料型別

print sheet.cell_value(3, 2)

#列印第3行2列數的值

print sheet.col_values(3, start_rowx=1, end_rowx=4)

#將第3列的值進行切片,從第1行到第3行開始

exceltime = sheet.cell_value(1, 0)

print xlrd.xldate_as_tuple(exceltime, 0)

#使用xldate_as_tuple方法獲取時間,讓python當做日期進行處理

xlrd處理Excel資料 讀

1.什麼是xlrd?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫 2.使用 1.常用單元格中的資料型別 empty 空的 string text number date boolean error blank 空白 2.檔案開啟 ...

excel用xlrd日期變成42631 0

datetime的解決辦法 混合資料的表中有個日期 2016 9 18 通過table.row values row number 1 讀取時,顯示的結果為 42631.0 檢視row values方法的原始碼 def row values self,rowx,start colx 0,end co...

xlrd操作excel資料

import xlrd 開啟excel檔案 data xlrd.open workbook r 示例資料.xlsx xlrd中常用函式 table data.sheets 0 通過索引順序獲取sheet,返回xlrd.sheet.sheet 物件 print table table data.she...