python操作Excel-寫/改/讀
阿新 • • 發佈:2018-12-18
python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。
xlrd和xlwt這兩個庫用之前需要安裝:cmd -> pip install xlrd / cmd -> pip install xlwt
一、寫Excel
1. 手動一條條的新增資料
import xlwt book = xlwt.Workbook() #新建一個excel sheet = book.add_sheet('sheet1') #新增一個sheet頁 sheet.write(0,0,'編號') #(行,列,'輸入的內容') 第一行/列是0sheet.write(0,1,'名字') sheet.write(0,2,'性別') sheet.write(1,0,'1') sheet.write(1,1,'馬春波') sheet.write(1,2,'男') book.save('stu.xls') #wps xls xlsx ,微軟的office 需以 .xls結尾
執行結果,生成一個Excel,顯示內容如下:
2. 迴圈新增行、列
import xlwt book = xlwt.Workbook() #新建一個excel sheet = book.add_sheet('sheet1') #新增一個sheet頁 stu_info = [ ['編號','姓名','密碼','性別','地址'], [1,'machunbo','sdfsd23sdfsdf2','男','北京'], [2,'machunbo2','sdfsd23sdfsdf2','男','北京'], [3,'machunb3','sdfsd23sdfsdf2','男','北京'], [4,'machunbo4','sdfsd23sdfsdf2','男','北京'], [5,'machunbo5','sdfsd23sdfsdf2','男','北京'], [6,'machunbo6','sdfsd23sdfsdf2','男','北京'], [7,'machunbo6','sdfsd23sdfsdf2','男','北京'], [8,'machunbo6','sdfsd23sdfsdf2','男','北京'], [9,'machunbo6','sdfsd23sdfsdf2','男','北京'], [10,'machunbo6','sdfsd23sdfsdf2','男','北京'], [11,'machunbo6','sdfsd23sdfsdf2','男','北京'], ]#6行5列 #方法1: row = 0 #行 for stu in stu_info: sheet.write(row,0,stu[0]) sheet.write(row,1,stu[1]) sheet.write(row,2,stu[2]) sheet.write(row,3,stu[3]) sheet.write(row,4,stu[4]) row+=1 #方法2: row = 0 #行 for stu in stu_info: #stu col = 0 # 列 # [1, 'machunbo', 'sdfsd23sdfsdf2', '男', '北京'], for s in stu: #控制列 sheet.write(row,col,s) #0 3 男 col+=1 row+=1 #方法3: for index,value in enumerate(stu_info): # index 0 # value ['編號','姓名','密碼','性別','地址'] #index 1 #value [1,'machunbo','sdfsd23sdfsdf2','男','北京'] for index2,v2 in enumerate(value): #enumerate同時取下標和對應的元素 print(index,index2,v2) #0 1 #1 machunbo #2 sdfsd23sdfsdf2 #4 北京 sheet.write(index,index2,v2) book.save('stu001.xls') #wps xls xlsx ,微軟的office xls
執行結果,生成一個Excel,顯示內容如下:
二、 修改Excel
使用前,安裝xlutils模組
import xlrd from xlutils import copy #編寫思路如下: #1、先開啟原來的excel #2、複製一份 #3、在複製的excel上修改 #4、儲存 book = xlrd.open_workbook('stu.xls') new_book = copy.copy(book) #複製一份原excel sheet = new_book.get_sheet(0) #修改excel的時候,得用get_sheet() sheet.write(0,0,'id') #把第一行第一列中的資料變為id sheet.write(0,3,'password') #第一行第四列的資料變為password new_book.save('stu.xls') #儲存
執行結果,修改了原Excel,顯示內容如下:
三、讀取Excel
import xlrd book = xlrd.open_workbook('stu3.xls') sheet = book.sheet_by_index(0) #檢視哪個sheet的資料,根據索引指定,第一個sheet,無返回值 sheet = book.sheet_by_name('sheet1')#檢視哪個sheet的資料,根據sheet名稱指定,無返回值 print(sheet.cell(0,0).value) #獲取指定單元格的內容,單元格位置cell(行、列):id print(sheet.cell(1,0).value) #輸出1.0而不是整數1 print(sheet.row_values(0)) #獲取整行的資料,返回list:['id', '姓名', '密碼', 'password', '地址'] print(sheet.row_values(1)) #[1.0, 'machunbo', 'sdfsd23sdfsdf2', '男', '北京'] print(sheet.col_values(0))#獲取整列的資料:['id', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0] print(sheet.col_values(1)) print(sheet.nrows) #輸出總行數:12 print(sheet.ncols) #輸出總列數:5 for row in range(1,sheet.nrows): #從第一行開始取值,取到最後一行 print(sheet.row_values(row)) #輸出每行的資料,每行資料都是一個list
輸出結果如下:
id 1.0 ['id', '姓名', '密碼', 'password', '地址'] [1.0, 'machunbo', 'sdfsd23sdfsdf2', '男', '北京'] ['id', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0] ['姓名', 'machunbo', 'machunbo2', 'machunb3', 'machunbo4', 'machunbo5', 'machunbo6', 'machunbo6', 'machunbo6', 'machunbo6', 'machunbo6', 'machunbo6'] 12 5 [1.0, 'machunbo', 'sdfsd23sdfsdf2', '男', '北京'] [2.0, 'machunbo2', 'sdfsd23sdfsdf2', '男', '北京'] [3.0, 'machunb3', 'sdfsd23sdfsdf2', '男', '北京'] [4.0, 'machunbo4', 'sdfsd23sdfsdf2', '男', '北京'] [5.0, 'machunbo5', 'sdfsd23sdfsdf2', '男', '北京'] [6.0, 'machunbo6', 'sdfsd23sdfsdf2', '男', '北京'] [7.0, 'machunbo6', 'sdfsd23sdfsdf2', '男', '北京'] [8.0, 'machunbo6', 'sdfsd23sdfsdf2', '男', '北京'] [9.0, 'machunbo6', 'sdfsd23sdfsdf2', '男', '北京'] [10.0, 'machunbo6', 'sdfsd23sdfsdf2', '男', '北京'] [11.0, 'machunbo6', 'sdfsd23sdfsdf2', '男', '北京']
內容補充:https://www.cnblogs.com/zhoujie/p/python18.html