Python自動操作Excel文件的方法詳解_第1頁
Python自動操作Excel文件的方法詳解_第2頁
Python自動操作Excel文件的方法詳解_第3頁
Python自動操作Excel文件的方法詳解_第4頁
Python自動操作Excel文件的方法詳解_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第Python自動操作Excel文件的方法詳解目錄工具讀取Excel文件內(nèi)容寫入Excel文件內(nèi)容Excel文件樣式調(diào)整設(shè)置表頭的位置設(shè)置單元格的寬高總結(jié)

工具

python3.7

Pycharm

Excel

xlwtxlrd

讀取Excel文件內(nèi)容

當(dāng)前文件夾下有一個名為股票數(shù)據(jù).xlsx的Excel文件,可以按照下列代碼方式來操作它。

importxlrd

#使用xlrd模塊的open_workbook函數(shù)打開指定Excel文件并獲得Book對象(工作簿)

wb=xlrd.open_workbook('股票數(shù)據(jù).xlsx')

#通過Book對象的sheet_names方法可以獲取所有表單名稱

sheetname=wb.sheet_names()[0]

#通過指定的表單名稱獲取Sheet對象(工作表)

sheet=wb.sheet_by_name(sheetname)

#通過Sheet對象的nrows和ncols屬性獲取表單的行數(shù)和列數(shù)

print(sheet.nrows,sheet.ncols)

forrowinrange(sheet.nrows):

forcolinrange(sheet.ncols):

#通過Sheet對象的cell方法獲取指定Cell對象(單元格)

#通過Cell對象的value屬性獲取單元格中的值

value=sheet.cell(row,col).value

#對除首行外的其他行進(jìn)行數(shù)據(jù)格式化處理

ifrow0:

#第1列的xldate類型先轉(zhuǎn)成元組再格式化為“年月日”的格式

ifcol==0:

#xldate_as_tuple函數(shù)的第二個參數(shù)只有0和1兩個取值

#其中0代表以1900-01-01為基準(zhǔn)的日期,1代表以1904-01-01為基準(zhǔn)的日期

value=xlrd.xldate_as_tuple(value,0)

value=f'{value[0]}年{value[1]:02d}月{value[2]:02d}日'

#其他列的number類型處理成小數(shù)點(diǎn)后保留兩位有效數(shù)字的浮點(diǎn)數(shù)

else:

value=f'{value:.2f}'

print(value,end='\t')

print()

#獲取最后一個單元格的數(shù)據(jù)類型

#0-空值,1-字符串,2-數(shù)字,3-日期,4-布爾,5-錯誤

last_cell_type=sheet.cell_type(sheet.nrows-1,sheet.ncols-1)

print(last_cell_type)

#獲取第一行的值(列表)

print(sheet.row_values(0))

#獲取指定行指定列范圍的數(shù)據(jù)(列表)

#第一個參數(shù)代表行索引,第二個和第三個參數(shù)代表列的開始(含)和結(jié)束(不含)索引

print(sheet.row_slice(3,0,5))

寫入Excel文件內(nèi)容

Excel文件寫入可以通過xlwt模塊的Workbook類創(chuàng)建工作簿對象,通過工作簿對象的add_sheet方法可以添加工作表,通過工作表對象的write方法可以向指定單元格中寫入數(shù)據(jù),最后通過工作簿對象的save方法將工作簿寫入到指定的文件或內(nèi)存中。下面代碼操作了一個學(xué)員成績表的寫入。

importrandom

importxlwt

student_names=['關(guān)羽','張飛','趙云','馬超','黃忠']

scores=[[random.randint(40,100)for_inrange(3)]for_inrange(5)]

#創(chuàng)建工作簿對象(Workbook)

wb=xlwt.Workbook()

#創(chuàng)建工作表對象(Worksheet)

sheet=wb.add_sheet('一年級二班')

#添加表頭數(shù)據(jù)

titles=('姓名','語文','數(shù)學(xué)','英語')

forindex,titleinenumerate(titles):

sheet.write(0,index,title)

#將學(xué)生姓名和考試成績寫入單元格

forrowinrange(len(scores)):

sheet.write(row+1,0,student_names[row])

forcolinrange(len(scores[row])):

sheet.write(row+1,col+1,scores[row][col])

#保存Excel工作簿

wb.save('考試成績表.xlsx')

Excel文件樣式調(diào)整

還可以通過XFStyle對象來設(shè)置單元格的不同樣式。主要包括字體(Font)、對齊方式(Alignment)、邊框(Border)和背景(Background)的設(shè)置。

header_style=xlwt.XFStyle()

pattern=xlwt.Pattern()

pattern.pattern=xlwt.Pattern.SOLID_PATTERN

#0-黑色、1-白色、2-紅色、3-綠色、4-藍(lán)色、5-黃色、6-粉色、7-青色

pattern.pattern_fore_colour=5

header_style.pattern=pattern

titles=('姓名','語文','數(shù)學(xué)','英語')

forindex,titleinenumerate(titles):

sheet.write(0,index,title,header_style)

設(shè)置表頭的位置

align=xlwt.Alignment()

#垂直方向的對齊方式

align.vert=xlwt.Alignment.VERT_CENTER

#水平方向的對齊方式

align.horz=xlwt.Alignment.HORZ_CENTER

header_style.alignment=align

設(shè)置單元格的寬高

#設(shè)置行高為40px

sheet.row(0).set_style(xlwt.easyxf(f'font:height{20*40}'))

titles=('姓名','語文','數(shù)學(xué)','英語')

forindex,titleinenumerate(titles):

#設(shè)置列寬為200px

sheet.col(index).width=20*200

#設(shè)置單元格的數(shù)據(jù)和樣式

sheet.write(0,index,title,header_style)

總結(jié)

其他操作Excel文件的三方庫(如openpyxl)大家有興趣可以自行了解。掌握了Python程序操作Excel的方法,可以解決日常辦公中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論