




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
openpyxl1、創(chuàng)建一個(gè)工作薄fromopenpyxlimportWorkbook,load_workbookwb=Workbook()#該方法主要用于創(chuàng)建一個(gè)新的wb=load_workbook('./name.xlsx')#該方法主要用于導(dǎo)入一個(gè)已經(jīng)存在的工作薄2、激活表格sheet=wb.activeWorkbook的一些屬性方法:sheetcell3、按行讀取excel表格的方法按行讀取:??1、方法一#按行讀取foriinrange(minrow,maxrow+1):forjinrange(mincol,maxcol+1):cell=sheet.cell(i,j).valueprint(cell,end="")print()方法二forrowinsheet.rows:forcellinrow:print(cell.value,end='\t')print()#目的在于不換行按列讀?。??1、方法一#按列讀取forminrange(mincol,maxcol+1):forninrange(minrow,maxrow+1):cell=sheet.cell(n,m).valueprint(cell,end="")print()4、openpyxl的寫入??1、單元格的輸入sheet['A1']='name'#按照想應(yīng)的位置輸入sheet.cell(1,2).value='123456'#cell后面接的是行和列??2、一行一行的寫??如user=['test’,'123456’]sh1.append(user)??現(xiàn)在有個(gè)數(shù)組要寫入到excel表里??login=[??['張飛’,'123456’],??['趙云’,'123456’],??['許褚’,'123456’],??['典韋’,'123456’],??['關(guān)羽’,'123456’],??['黃忠’,'123456’],??['徐晃’,'123456’],??['馬超’,'123456’]??]bk=openpyxl.Workbook()sh1=bk.activeforiinrange(len(login)):sh1.append(login[i])bk.save('userinfo.xlsx')2.Python操作Excel2.1Python操作Excel之讀取2.1.1打開本地工作簿,獲取所有工作表名稱#獲取所有的工作表名稱importopenpyxlwb=openpyxl.load_workbook('excelTest.xlsx')#獲取所有的工作表名稱print(wb.sheetnames)#獲取當(dāng)前激活的工作表print(wb.active.title)#通過(guò)工作簿獲取forsinwb:print(s.title)2.1.2創(chuàng)建工作表importopenpyxlwb=openpyxl.load_workbook('excelTest.xlsx')#創(chuàng)建工作表mySheet=wb.create_sheet('mySheet')print(wb.sheetnames)#遍歷獲取工作表的名稱forsheetinwb:print(sheet.title)2.1.3根據(jù)工作表名稱獲取工作表importopenpyxlwb=openpyxl.load_workbook('excelTest.xlsx')#根據(jù)工作表名稱獲取工作表,DeprecationWarning:Calltodeprecatedfunctionget_sheet_by_name(Usewb[sheetname]).#會(huì)產(chǎn)生棄用警告,wb['my_sheet'],可以避免#my_sheet=wb.get_sheet_by_name('my_sheet')#根據(jù)名稱獲取表單sheet3=wb.get_sheet_by_name('Sheet2')#或者sheet4=wb['mySheet']2.1.4獲取單元格對(duì)象及單元格的值importopenpyxlwb=openpyxl.load_workbook('excelTest.xlsx')#獲取當(dāng)前激活的工作表ws=wb.active#返回的是工作表對(duì)象print(ws)#<Worksheet"Sheet1">#獲取Cell對(duì)象及單元格的值print(ws['A1'])#<Cell'Sheet1'.A1>print(ws['A1'].value)2.1.5獲取單元格的行、列及值#獲取單元格對(duì)象的行列和值importopenpyxl#獲取工作簿對(duì)象wb=openpyxl.load_workbook('excelTest.xlsx')#獲取sheetws=wb.active#根據(jù)單元格名稱獲取單元格對(duì)象c=ws['C3']print('row:{},column:{},value:{}'.format(c.row,c.column,c.value))print('coordinate:',c.coordinate)print('ws.cell()獲取單元格的值')print(ws.cell(row=2,column=2).value)print('循環(huán)遍歷獲?。?)forrinws.rows:forcinr:print(c.value,end='\t\t')print()2.1.6讀取整行、整列及部分幾行#讀取整行整列及部分行importopenpyxl#獲取工作簿wb=openpyxl.load_workbook('excelTest.xlsx')#獲取sheetws=wb.activeprint('獲取一整行')rows=ws[2]print(rows)#遍歷所有單元格forrinrows:print(r.value,end='\t')print('獲取整列')columns=ws['B']print(columns)forcincolumns:print(c.value,end='\t')print('獲取部分行對(duì)行進(jìn)行切片')row_range=ws[2:3]print(row_range)forrinrow_range:forcinr:print(c.value,end='\t')print()columns_range=ws['A':'C']print(columns_range)forcolincolumns_range:forcincol:print(c.value,end='\t\t')print()2.1.7使用iter_rows()逐行讀取importopenpyxl#獲取工作簿wb=openpyxl.load_workbook('excelTest.xlsx')#獲取當(dāng)前激活態(tài)的sheetws=wb.activeprint('總共{},總共{}列'.format(ws.max_row,ws.max_column))print(ws.iter_rows())#generatorobject獲取一個(gè)生成器對(duì)象#獲取所有行所有列forrowinws.iter_rows():forcellinrow:print(cell.value,end='\t\t')print()print('讀取部分行部分列')forrowinws.iter_rows(min_row=2,max_row=3,min_col=2,max_col=2):forcellinrow:print(cell.value,end='\t\t')print()print()print('iter.cols()')print(ws.iter_cols())forcellinws.iter_cols():forcincell:print(c.value,end='\t\t')print()print()print('ws.iter_rows()設(shè)置最小列、最大列、最小行和最大行讀取'.center(20,'*'))forcellinws.iter_cols(min_row=2,max_col=2,min_col=2,max_row=3):forcincell:print(c.value,end='\t\t')print()print()2.1.8部分行部分列切片讀取importopenpyxlwb=openpyxl.load_workbook('excelTest.xlsx')ws=wb.activeprint('共{}行,共{}列'.format(ws.max_row,ws.max_column))print('部分行部分列切片讀取'.center(20,'*'))cell_range=ws['A1:C3']forrowObjectincell_range:forcellObjectinrowObject:print(cellObject.coordinate,cellObject.value,end='\t')print()2.1.9列數(shù)字與字母的對(duì)應(yīng)轉(zhuǎn)換#列字母與數(shù)字的對(duì)象轉(zhuǎn)化fromopenpyxl.utilsimportget_column_letter,column_index_from_stringprint('第2列對(duì)象的字母:',get_column_letter(2))print('第12列對(duì)應(yīng)的字母:',get_column_letter(12))print('字母DR對(duì)應(yīng)的數(shù)字:',column_index_from_string('DR'))print('字母D對(duì)應(yīng)的數(shù)字:',column_index_from_string('D'))2.2Python操作Excel之寫2.2.1創(chuàng)建、刪除工作表#創(chuàng)建WorkSheet及刪除importopenpyxl#創(chuàng)建工作簿wb=openpyxl.Workbook()ws=wb.activeprint('默認(rèn)工作表名稱',ws.title)#設(shè)置名稱ws.title='mySheet'print(ws.title)#獲取工作簿的所有sheetNamesprint(wb.sheetnames)#返回所有sheet名稱列表對(duì)象print(wb.get_sheet_names())print('創(chuàng)建工作表')wb.create_sheet(index=1,title='OneSheet')wb.create_sheet(index=2,title='TwoSheet')wb.create_sheet(index=3,title='ThreeSheet')print(wb.sheetnames)print('刪除工作表')wb.remove_sheet(wb['TwoSheet'])#DeprecatingWaring:棄用wb.remove(wb['TwoSheet'])print(wb.sheetnames)2.2.2使用list寫入#寫入數(shù)據(jù)到excel中importopenpyxlwb=openpyxl.Workbook()ws=wb.create_sheet(title='使用list寫入')print(wb.sheetnames)print('使用list寫入')rows=[['now1','now2','now3','now3'],[12,54,23,26],[11,43,55,13],[54,7672,333,433],[1,2,3,4],]print(rows)#按行寫入forrowinrows:ws.append(row)2.2.3使用range方式寫入importopenpyxl#向工作單元寫內(nèi)容wb=openpyxl.Workbook()ws2=wb.create_sheet('rangenames')ws=wb.create_sheet('RangeSheet')foriinrange(1,41):ws.append(range(16))2.2.4使用cell()方法寫入#根據(jù)cell()寫值ws=wb.create_sheet('CellSheet')fromopenpyxl.utilsimportget_column_letter#根據(jù)當(dāng)前列獲取該列名forrowinrange(10,21):forcolinrange(5,16):ws.cell(row=row,column=col,value=get_column_letter(col))#根據(jù)當(dāng)前列獲取該列名,作為valuewb.save('寫入數(shù)據(jù).xlsx')3.Python操作Excel之修改樣式3.1修改字體樣式#修改樣式importopenpyxlfromopenpyxl.stylesimportcolors,Font#獲取工作簿wb=openpyxl.Workbook()ws=wb.active#更改sheet的namews.title='修改字體樣式'#修改單元格字體樣式c3_font=Font(name='宋體',size=24,italic=True,)ws['C3'].font=c3_fontws['C3']='宋體24italic'#italic:斜體的;斜體字;a5_font=Font('微軟雅黑',size=18,bold=True,color=colors.BLUE)ws['A5'].font=a5_fontws['A5']='微軟雅黑18boldblue'wb.save('style_excelTest.xlsx')3.2設(shè)置單元格公式importopenpyxlfromopenpyxl.stylesimportFontfromopenpyxl.stylesimportcolorswb=openpyxl.Workbook()ws=wb.active#設(shè)置單元格公式ws=wb.create_sheet('設(shè)置單元格公式')ws['B1']=100ws['B2']=99ws['B3'].font=a5_fontws['B3']='=SUM(B1:B2)'3.3設(shè)置行高和列寬importopenpyxlfromopenpyxl.stylesimportFontfromopenpyxl.stylesimportcolorswb=openpyxl.Workbook()ws=wb.active#設(shè)置行高和列寬ws=wb.create_sheet('dimesions')ws['A1']='Tallrow'ws.row_dimensions[1].height=70ws['B2']='Widecolumn'ws.column_dimensions['B'].width=20wb.save('style_excelTest.xlsx')3.4合并單元格importopenpyxlfromopenpyxl.stylesimportFontfromopenpyxl.stylesimportcolorswb=openpyxl.Workbook()#合并單元格ws=wb.create_sheet('merged')ws.merge_cells('A1:D3')ws['A1']='Twelvecellsmergedtogether'ws.merge_cells('C5:D5')ws['C5']='Twomergedcellswb.save('style_excelTest.xlsx')3.5拆分單元格importopenpyxlfromopenpyxl.stylesimportFontfromopenpyxl.stylesimportcolorswb=openpyxl.Workbook()ws=wb.active#拆分單元格ws=wb.copy_worksheet(wb.get_sheet_by_name('merged'))ws.title='unmerged'ws.unmerge_cells('A1:D3')ws.unmerge_cells('C5:D5')wb.save('style_excelTest.xlsx')4.Python操作Excel之圖表4.1餅圖餅圖將數(shù)據(jù)繪制為一個(gè)圓的切片,每個(gè)切片代表整個(gè)百分比。切片按順時(shí)針?lè)较蚶L制,圓的頂部為0°。#繪制餅圖importopenpyxlfromopenpyxl.chartimportPieChart,Reference,BarChart,BubbleChart,ScatterChart#Reference:圖標(biāo)所用信息fromopenpyxl.chartimportSeries#準(zhǔn)備數(shù)據(jù)rows=[['Pie','Sold'],['Apple',50],['Cherry',30],['Pumpkin',10],['Chocolate',40]]#將數(shù)據(jù)寫入excel#創(chuàng)建工作簿wb=openpyxl.Workbook()ws=wb.activews.title='PieCharts'forrowinrows:ws.append(row)#繪制餅圖pie_chart=PieChart()#設(shè)置標(biāo)題pie_chart.title='Piesoldbycategory'#進(jìn)行分類category=Reference(ws,min_col=1,min_row=2,max_row=5)data=Reference(ws,min_col=2,min_row=2,max_row=5)#數(shù)據(jù)所在第2列#需要先添加數(shù)據(jù)再設(shè)置種類介紹#添加數(shù)據(jù)pie_chart.add_data(data)#設(shè)置所分類別pie_chart.set_categories(category)#在excel添加餅圖ws.add_chart(pie_chart,'D1')#在D1位置繪制餅圖#保存wb.save('char_excel_text.xlsx')4.2條形圖和柱形圖在條形圖中,值被繪制為水平條或垂直列??梢酝ㄟ^(guò)type屬性來(lái)設(shè)置。繪制垂直的條形圖則使用如下:chart1.type='col繪制成水平條形圖示例如下:chart1.type='barimportopenpyxlfromopenpyxl.chartimportPieChart,Reference,BarChart,BubbleChart,ScatterChart#Reference:圖標(biāo)所用信息fromopenpyxl.chartimportSeries#繪制柱狀圖#創(chuàng)建工作表ws=wb.create_sheet('BarChart')#準(zhǔn)備數(shù)據(jù)rows=[('Number','Batch1','Batch2'),(2,10,30),(3,40,60),(4,50,70),(5,20,10),(6,10,40),(7,50,30),]#添加數(shù)據(jù)forrowinrows:ws.append(row)#繪制柱狀圖bar_chart=BarChart()bar_chart.type='col'#col垂直、水平柱狀圖barbar_chart.title='BarChart'bar_chart.style=10#設(shè)置顏色,10的對(duì)比度最強(qiáng),紅色與藍(lán)色#設(shè)置橫軸縱軸標(biāo)題bar_chart.x_axis.title='Samplelength(mm)'bar_chart.y_axis.title='Testnumber'#設(shè)置分類category=Reference(ws,min_col=1,min_row=2,max_row=7)#獲取數(shù)據(jù)data=Reference(ws,min_col=2,max_col=3,min_row=1,max_row=7)#柱狀圖對(duì)象添加數(shù)據(jù)bar_chart.add_data(data,titles_from_data=True)#titles_from_data=True:根據(jù)來(lái)源設(shè)置數(shù)據(jù)標(biāo)題#設(shè)置分類bar_chart.set_categories(category)#工作頁(yè)繪制柱狀圖,并指定位置ws.add_chart(bar_chart,'E1')#保存wb.save('char_excel_text.xlsx')4.3氣泡圖氣泡圖類似于散點(diǎn)圖,但使用第三維來(lái)確定氣泡的大小。圖表可以包括多個(gè)系列。importopenpyxlfromopenpyxl.chartimportPieChart,Reference,BarChart,BubbleChart,ScatterChart#Reference:圖標(biāo)所用信息fromopenpyxl.chartimportSeries#繪制氣泡圖ws=wb.create_sheet('BubbleChart')#設(shè)置數(shù)據(jù)rows=[('NumberofProducts','SalesinUSD','Markedshare'),(14,12200,15),(20,60000,33),(18,2440,10),(22,3200,42),(),(12,8200,18),(15,50000,30),(19,22400,15),(25,25000,50),]#添加數(shù)據(jù)forrowinrows:ws.append(row)#獲取氣泡圖對(duì)象bubble_chart=BubbleChart()bubble_chart.style=10#設(shè)置顏色#添加一組數(shù)據(jù)xvalues=Reference(ws,min_col=1,min_row=2,max_row=5)yvalues=Reference(ws,min_col=2,min_row=2,max_row=5)size=Reference(ws,min_col=3,min_row=2,max_row=5)#創(chuàng)建Series對(duì)象series=Series(values=yvalues,xvalues=xvalues,zvalues=size,title='2013')bubble_chart.series.append(series)#添加一組數(shù)據(jù)xvalues=Reference(ws,min_col=1,min_row=7,max_row=10)yvalues=Reference(ws,min_col=2,min_row=7,max_row=10)size=Reference(ws,min_col=3,min_ro
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆云南省曲靖一中高三化學(xué)第一學(xué)期期末考試模擬試題含解析
- 2025年時(shí)尚芭莎項(xiàng)目發(fā)展計(jì)劃
- 2026屆上海市寶山區(qū)吳淞中學(xué)高一化學(xué)第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 2026屆安徽省六安市第一中學(xué)高二化學(xué)第一學(xué)期期中達(dá)標(biāo)檢測(cè)模擬試題含解析
- 人物速寫說(shuō)課課件
- 供應(yīng)室包裝知識(shí)課件
- 供應(yīng)室??浦R(shí)培訓(xùn)內(nèi)容課件
- 佳能攝像機(jī)基礎(chǔ)知識(shí)培訓(xùn)課件
- 知道智慧樹臨床微生物學(xué)檢驗(yàn)技術(shù)(山東聯(lián)盟).滿分測(cè)試答案
- 宜興校園招聘面試實(shí)戰(zhàn)題庫(kù)精 編版
- HAUNI-KLD-2烘絲機(jī)設(shè)備結(jié)構(gòu)
- GB/T 41605-2022滾動(dòng)軸承球用氮化硅材料室溫壓痕斷裂阻力試驗(yàn)方法壓痕法
- 天津高考語(yǔ)文卷各題型思路要點(diǎn)提示
- ktv轉(zhuǎn)讓標(biāo)準(zhǔn)合同范本(3篇)
- 普外科醫(yī)療質(zhì)量評(píng)價(jià)體系與考核標(biāo)準(zhǔn)
- 普通高中語(yǔ)文課程標(biāo)準(zhǔn)測(cè)試題及答案
- 正確認(rèn)識(shí)胰島素
- 吞咽障礙患者的營(yíng)養(yǎng)支持課件
- DL∕T 617-2019 氣體絕緣金屬封閉開關(guān)設(shè)備技術(shù)條件
- 諾如病毒感染暴發(fā)調(diào)查和預(yù)防控制技術(shù)指南(2023版)
- 班級(jí)管理(第3版)教學(xué)課件匯總?cè)纂娮咏贪?完整版)
評(píng)論
0/150
提交評(píng)論