Python3 讀、寫Excel檔案
阿新 • • 發佈:2018-11-24
首先,簡單介紹一下EXECL中工作簿和工作表的區別:
工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。
- 一個工作簿就是一個獨立的檔案
- 一個工作簿裡面可以有1個或者多個工作表
- 工作簿是工作表的集合
1:使用python實現對Excel檔案的讀寫,首先需要安裝專用的模組(可以自己編寫)xlrd,xlwt模組
2:讀取excel資料(注意事項:sheet編號,行號,列號都是從索引0開始)
import xlrd # 設定路徑 path = 'E:/input.xlsx' # 開啟execl workbook = xlrd.open_workbook(path)# 輸出Excel檔案中所有sheet的名字 print(workbook.sheet_names()) # 根據sheet索引或者名稱獲取sheet內容 Data_sheet = workbook.sheets()[0] # 通過索引獲取 # Data_sheet = workbook.sheet_by_index(0) # 通過索引獲取 # Data_sheet = workbook.sheet_by_name(u'名稱') # 通過名稱獲取 print(Data_sheet.name) # 獲取sheet名稱 rowNum = Data_sheet.nrows # sheet行數colNum = Data_sheet.ncols # sheet列數 # 獲取所有單元格的內容 list = [] for i in range(rowNum): rowlist = [] for j in range(colNum): rowlist.append(Data_sheet.cell_value(i, j)) list.append(rowlist) # 輸出所有單元格的內容 for i in range(rowNum): for j in range(colNum): print(list[i][j], '\t\t', end="") print() # 獲取整行和整列的值(列表) rows = Data_sheet.row_values(0) # 獲取第一行內容 cols = Data_sheet.col_values(1) # 獲取第二列內容 # print (rows) # print (cols) # 獲取單元格內容 cell_A1 = Data_sheet.cell(0, 0).value cell_B1 = Data_sheet.row(0)[1].value # 使用行索引 cell_C1 = Data_sheet.cell(0, 2).value cell_D2 = Data_sheet.col(3)[1].value # 使用列索引 print(cell_A1, cell_B1, cell_C1, cell_D2) # 獲取單元格內容的資料型別 # ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error print('cell(0,0)資料型別:', Data_sheet.cell(0, 0).ctype) print('cell(1,0)資料型別:', Data_sheet.cell(1, 0).ctype) print('cell(1,1)資料型別:', Data_sheet.cell(1, 1).ctype) print('cell(1,2)資料型別:', Data_sheet.cell(1, 2).ctype) # 獲取單元格內容為日期的資料 date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode) print(type(date_value), date_value) print('%d:%d:%d' % (date_value[0:3]))
3:建立excel並寫入資料
import xlwt def set_style(name, height, bold=False): style = xlwt.XFStyle() # 初始化樣式 font = xlwt.Font() # 為樣式建立字型 font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return style def write_excel(path): # 建立工作簿 workbook = xlwt.Workbook(encoding='utf-8') # 建立sheet data_sheet = workbook.add_sheet('demo') row0 = [u'欄位名稱', u'大致時段', 'CRNTI', 'CELL-ID'] row1 = [u'測試', '15:50:33-15:52:14', 22706, 4190202] # 生成第一行和第二行 for i in range(len(row0)): data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True)) data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True)) # 儲存檔案 # workbook.save('demo.xls') workbook.save(path) if __name__ == '__main__': # 設定路徑 path = 'E:/demo.xls' write_excel(path) print(u'建立demo.xls檔案成功')