一、使用xlrd和xlwt這兩個庫來處理excel,即xlrd是讀excel的庫,xlwt是寫excel的庫
1.使用 xlrd 讀取Excel數據
# -*- coding:utf-8 -*- import xlrd def read_excel(): book = xlrd.open_workbook(filename='D:\Excel3.xls') # 打開文件 print(book.sheet_names()) # 獲取所有表格名字 # 獲取表格的方式 sheet1 = book.sheets()[0] sheet2 = book.sheet_by_index(0) # 根據順序獲取sheet,0表示第一個sheet sheet3 = book.sheet_by_name('學生1') # 根據sheet頁名字獲取sheet print(sheet1.name, sheet1.nrows, sheet1.ncols) # 獲取excel里面有多少行,多少列 sheet1.row_values(1) # 取第幾行的數據,返回一個列表list sheet1.col_values(1) # 取第幾列的數據,返回一個列表list # 獲取表格里的內容,三種方式:指定行和列獲取數據,0行0列代表excel中第一個數據 print(sheet1.cell(1, 1).value) print(sheet1.cell_value(1, 1)) print(sheet1.row(1)[1].value) excelhead = [] for i in range(sheet1.ncols): # 查詢表頭,即獲取第一行的數據 excel_head_values = sheet1.col_values(i) excelhead.append(excel_head_values[0]) print(excelhead) for i in range(sheet1.nrows)[1:]: # 查詢行的值,從第二行開始 row_values = sheet1.row_values(i) print(' '.join([str(x) for x in row_values])) if __name__ == "__main__": read_excel()
2.使用 xlwt 寫入Excel數據
- write(x, y, string):x表示行,y表示列,string表示要寫入的單元格內容。
-
write_merge(x, x + m, y, w + n, string, sytle):x表示行,y表示列,m表示跨行個數,n表示跨列個數,string表示要寫入的單元格內容,style表示單元格樣式。其中,x,y,w,h,都是以0開始計算的。
- 示例:sheet1.write_merge(21,21,0,1,u'合計',set_style('Times New Roman',220,True)):即在22行合並第1,2列,合並后的單元格內容為"合計",並設置了style。
# -*- coding:utf-8 -*- import xlwt def write_excel(): book = xlwt.Workbook() # 新建一個excel sheet1 = book.add_sheet('學生1') # 添加一個sheet頁,創建第一個sheet:學生1 data = [['姓名', '年齡', '性別', '分數'], ['mary', 20, '女', 90], ['jack', 26, '男', 96]] raw = 0 # 控制行 for stu in data: # 循環寫入 col = 0 # 控制列 for s in stu: sheet1.write(raw, col, s) col += 1 raw += 1 sheet1.write_merge(3, 3, 1, 3, '待確認') # 合並列單元格,第2列到第4列合並 sheet1.write_merge(1, 3, 4, 4, '打游戲') # 合並行單元格,第2行到第4行合並 sheet2 = book.add_sheet('學生2', cell_overwrite_ok=True) # 添加一個sheet頁,創建第二個sheet:學生2 row0 = ["姓名", "年齡", "愛好", "出生日期"] col0 = ["張三", "李四", "小明", "小紅", "無名"] for i in range(0, len(row0)): # 寫第一行 sheet2.write(0, i, row0[i]) for i in range(0, len(col0)): # 寫第一列 sheet2.write(i + 1, 0, col0[i]) sheet2.write(1, 3, '91/12/12') sheet2.write_merge(5, 5, 2, 3, u'暫無') # 合並列單元格 sheet2.write_merge(2, 3, 3, 3, u'94/05/06') # 合並行單元格 book.save('D:\Excel3.xls') # 保存文件 if __name__ == "__main__": write_excel()
3.使用 xlutils 修改Excel數據
# -*- coding:utf-8 -*- import xlrd from xlutils.copy import copy book1 = xlrd.open_workbook('D:\Excel.xls') # 打開要修改的excel book2 = copy(book1) # 拷貝一份原來的excel sheet = book2.get_sheet(0) # 獲取第幾個sheet頁 sheet.write(1, 1, 28) # 寫入需要修改的行、列及修改后的值 sheet.write(5, 0, 'mike') book2.save('D:\Excel.xls')
參考:https://blog.csdn.net/csdnnews/article/details/80878945
參考:https://www.jb51.net/article/60510.htm
二、使用 openpyxl 來處理excel
參考:https://www.jianshu.com/p/45c507e73172
參考:https://segmentfault.com/a/1190000016256490
參考:https://www.cnblogs.com/feifeifeisir/p/10419262.html
之后在研究