1. 程式人生 > >python操作Excel-寫/改/讀

python操作Excel-寫/改/讀

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,'編號') #(行,列,'輸入的內容') 第一行/列是0
sheet.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