標籤:python excel
一.讀操作--xlrd模組
import xlrd
開啟一個工作表
wkb=xlrd.open_workbook(‘test.xls‘)
擷取sheet操作
wkb.sheet_names()
sheet=wkb.sheets()[0]
sheet=wkb.sheet_by_index(0)
sheet=wkb.sheet_by_name(‘Sheet1‘)
sheet操作擷取cell值的幾種方法:
nrows=sheet.nrows 總行數
ncols=sheet.ncols 總列數
sheet.row_values(i) 第i行的值
sheet.col_values(i) 第i列的值
sheet.cell(1,2).value 第2行3列的值
sheet.cell_value(1,2) 第2行3列的值
sheet.row(1)[2].value 第2行3列的值
sheet.col(2)[1].value 第2行3列的值
樣本一:
text.xls表格內容如下
zhzhgo
|
25 |
sister |
28 |
brother |
30 |
import xlrdwbk=xlrd.open_workbook(‘test.xls‘)#print wbk.sheet_names()#print wbk.sheets()[0]#print wbk.sheet_by_index(0)st=wbk.sheet_by_name(‘Sheet1‘)print st.nrows #擷取表格行數print st.ncols #擷取表格列數print st.row_values(0) #第一行的資料print st.col_values(0) #第一列的資料print st.cell(0,0).value #第一行一列的資料
>>>
3
2
[u‘zhzhgo‘, 25.0]
[u‘zhzhgo‘, u‘sister‘, u‘brother‘]
zhzhgo
>>>
二.寫操作--xlwt模組
import xlwt
wbk=xlwt.Workbook() 大寫W
sheet=wbk.add_sheet(‘Sheet 1‘,cell_overwrite_ok=True)
sheet.write(0,1,‘content‘)
wbk.save(‘test.xls‘) 只支援儲存xls格式
自訂樣式
style=xlwt.XFStyle()
font=xlwt.Font()
font.name=‘Times New Roman‘
font.bold=True
style.font=font
sheet.write=(0,0,‘content‘,style)
style1=xlwt.easyxf(‘pattern:pattern solid,fore_colour red;font:bold on;‘)
樣本二:
import xlwtwbk=xlwt.Workbook()st=wbk.add_sheet(‘test‘,cell_overwrite_ok=True) #如果test存在則覆蓋st.write(0,0,‘zhzhgo‘)st.write(0,1,25)style=xlwt.XFStyle()font=xlwt.Font()font.name=‘Times New Roman‘font.bold=True #加粗style.font=fontstyle1=xlwt.easyxf(‘pattern:pattern solid,fore_colour red;font:bold on;‘)st.write(1,0,‘zhzhgo‘,style) #設定字型樣式st.write(1,1,25,style1) #設定字型樣式和背景顏色wbk.save(‘test1.xls‘)
運行之後產生test1.xls檔案內容樣式如下:
由於xlwt每次儲存的時候都會建立一個新的xls檔案,如果檔案不存在則建立,存在則覆蓋,所以不能進行更新操作,python提供了更一個模組來進行excel的更新操作。
三.修改操作--xlutils模組
xlutils.copy
from xlutils import copy as xcopy
wkb_rd=xlrd.open_workbook(‘test.xls‘)
wkb_cp=xcopy.copy(wkb_rd) 拷貝一份xlrd到xlwt
sheet=wkb_cp.get_sheet(0)
sheet.write(row,col,value)
wkb_cp.save(‘test_cp.xls‘) 只支援儲存xls格式
樣本三:
import xlrdfrom xlutils import copy wkb_rd=xlrd.open_workbook(‘test.xls‘)wkb_cp=copy.copy(wkb_rd)sheet=wkb_cp.get_sheet(0)sheet.write(3,0,‘mother‘)sheet.write(3,1,‘50‘)wkb_cp.save(‘test.xls‘
運行之後test.slx檔案內容如下,增加一行插入的資料:
zhzhgo |
25 |
sister |
28 |
brother |
30 |
mother |
50 |
本文出自 “今日的努力,明日的成功!” 部落格,請務必保留此出處http://zhzhgo.blog.51cto.com/10497096/1679858
python excel操作