簡介:
在Python中xlrd和xlwt是兩個很重要的模塊,主要解決Python讀寫excel數據的接口問題。
1. 數據格式
xlrd所讀取的excel數據可能的格式有七種:
- empty(空的)
- text(string)
- number,
- date,
- boolean,
- error,
- blank(空白表格)
2. 獲取Book工作簿(即excel工作簿,包含所有工作表)
1 data = xlrd.open_workbook(filename) # 讀取名為filename的工作簿;
# 若所讀取的excel文件與Python程序在同一個路徑下,則filename為文件名字符串;
# 若所讀取的excel文件與Python程序不在同一個路徑下,則filename為文件所在路徑及名稱,此時路徑為加一個r原生字符。 # 返回值data類型xlrd.book.Book,其包含所讀取的excel工作簿的所有表格。 更多方法: names = data.sheet_names() # 返回book中所有工作表的名字 data.sheet_loaded(sheet_name or indx) # 檢查某個sheet是否導入完畢
2. 獲取Sheet工作表(即Book中的一個表)
table = data.sheets()[0] # 通過索引順序獲取 table = data.sheet_by_index(sheet_indx)) #通過索引順序獲取 table = data.sheet_by_name(sheet_name) # 通過名稱獲取 # 三種方法返回值均為xlrd.sheet.Sheet()對象
3. 操作sheet工作表行(對象為sheet表)
1 nrows = table.nrows 2 # 獲取該sheet中的行數,注,這里table.nrows后面不帶(). 3 4 table.row(rowx) 5 # 返回由該行中所有的單元格對象組成的列表,這與tabel.raw()方法並沒有區別。 6 7 table.row_slice(rowx) 8 # 返回由該列中所有的單元格對象組成的列表 9 10 table.row_types(rowx, start_colx=0, end_colx=None) 11 # 返回由該行中所有單元格的數據類型組成的列表;
# 返回值為邏輯值列表,若類型為empy則為0,否則為1 12 13 table.row_values(rowx, start_colx=0, end_colx=None) 14 # 返回由該行中所有單元格的數據組成的列表 15 16 table.row_len(rowx) 17 # 返回該列的有效單元格長度,即這一行有多少個數據
4. 操作sheet工作表列(對象為sheet表)
1 ncols = table.ncols 2 # 獲取列表的有效列數 3 4 table.col(colx, start_rowx=0, end_rowx=None) 5 # 返回由該列中所有的單元格對象組成的列表 6 7 table.col_slice(colx, start_rowx=0, end_rowx=None) 8 # 返回由該列中所有的單元格對象組成的列表 9 10 table.col_types(colx, start_rowx=0, end_rowx=None) 11 # 返回由該列中所有單元格的數據類型組成的列表 12 13 table.col_values(colx, start_rowx=0, end_rowx=None) 14 # 返回由該列中所有單元格的數據組成的列表
5. 單元格操作(對象為sheet表)
1 table.cell(rowx,colx) 2 # 返回單元格對象 3 4 table.cell_type(rowx,colx) 5 # 返回對應位置單元格中的數據類型 6 7 table.cell_value(rowx,colx) 8 # 返回對應位置單元格中的數據 9