版權(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的寫(xiě)入??1、單元格的輸入sheet['A1']='name'#按照想應(yīng)的位置輸入sheet.cell(1,2).value='123456'#cell后面接的是行和列??2、一行一行的寫(xiě)??如user=['test’,'123456’]sh1.append(user)??現(xiàn)在有個(gè)數(shù)組要寫(xiě)入到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打開(kāi)本地工作簿,獲取所有工作表名稱#獲取所有的工作表名稱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之寫(xiě)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寫(xiě)入#寫(xiě)入數(shù)據(jù)到excel中importopenpyxlwb=openpyxl.Workbook()ws=wb.create_sheet(title='使用list寫(xiě)入')print(wb.sheetnames)print('使用list寫(xiě)入')rows=[['now1','now2','now3','now3'],[12,54,23,26],[11,43,55,13],[54,7672,333,433],[1,2,3,4],]print(rows)#按行寫(xiě)入forrowinrows:ws.append(row)2.2.3使用range方式寫(xiě)入importopenpyxl#向工作單元寫(xiě)內(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()方法寫(xiě)入#根據(jù)cell()寫(xiě)值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('寫(xiě)入數(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ù)寫(xiě)入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)行分類(lèi)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è)置種類(lèi)介紹#添加數(shù)據(jù)pie_chart.add_data(data)#設(shè)置所分類(lèi)別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è)置分類(lèi)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è)置分類(lèi)bar_chart.set_categories(category)#工作頁(yè)繪制柱狀圖,并指定位置ws.add_chart(bar_chart,'E1')#保存wb.save('char_excel_text.xlsx')4.3氣泡圖氣泡圖類(lèi)似于散點(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年團(tuán)購(gòu)達(dá)人合作協(xié)議(本地生活·傭金版)
- 2026年社交媒體賬號(hào)托管協(xié)議
- 檢查督查結(jié)果反饋不及時(shí)處理意見(jiàn)建議
- 2025年天津市職業(yè)大學(xué)馬克思主義基本原理概論期末考試模擬題帶答案解析
- 2025年寧波開(kāi)放大學(xué)馬克思主義基本原理概論期末考試模擬題附答案解析
- 2025年潁上縣幼兒園教師招教考試備考題庫(kù)附答案解析
- 2025年江西交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案解析
- 2025年江西軟件職業(yè)技術(shù)大學(xué)單招職業(yè)技能測(cè)試題庫(kù)帶答案解析
- 2026年南昌交通學(xué)院?jiǎn)握新殬I(yè)技能考試模擬測(cè)試卷附答案解析
- 2025年輪臺(tái)縣招教考試備考題庫(kù)含答案解析(奪冠)
- 消防改造施工組織方案
- 2025-2026年人教版九年級(jí)下冊(cè)歷史期末考試卷及答案
- 煤礦綜采設(shè)備安裝施工方案
- 2025-2026學(xué)年人教版英語(yǔ)七年級(jí)下冊(cè)課程綱要
- 2025至2030商業(yè)體育場(chǎng)館行業(yè)調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2025年教師轉(zhuǎn)崗考試職業(yè)能力測(cè)試題庫(kù)150道(含答案)
- 2026年遼寧經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及參考答案詳解1套
- 2025年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)軟包裝用復(fù)合膠行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 項(xiàng)目管理施工合同范本
- 全國(guó)物業(yè)管理法律法規(guī)及案例解析
- 抖音來(lái)客本地生活服務(wù)酒旅酒店民宿旅游景區(qū)商家代運(yùn)營(yíng)策劃方案
評(píng)論
0/150
提交評(píng)論