九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
自動(dòng)化操作Excel利器:Python第三方庫Openpyxl指南)


Python函數(shù)
入門必備:神奇的Excel自動(dòng)化工具Openpyxl庫,網(wǎng)絡(luò)上一直是零零碎碎的教程,今天我們?yōu)榇蠹铱偨Y(jié)一下:

三大模塊,我們將通過簡(jiǎn)單的實(shí)例來介紹他們的用法:

1、Workbook操作工作簿的模塊(工作簿,一個(gè)excel文件包含多個(gè)sheet。)
2、Worksheet操作表格的模塊(工作表,一個(gè)workbook有多個(gè),表名識(shí)別,如“sheet1”,“sheet2”等。)
3、Cell操作單元格的模塊(單元格,存儲(chǔ)數(shù)據(jù)對(duì)象)

先創(chuàng)建一個(gè)對(duì)象,新建一個(gè)工作簿:

from openpyxl import Workbook#新建一個(gè)工作簿,創(chuàng)建一個(gè)對(duì)象new_wb=Workbook('test2.xlsx')new_wb.save('test2.xlsx')

運(yùn)行結(jié)果:

在相同的目錄下生成了一個(gè)新的excel文件,如果讀取一個(gè)工作簿,我們使用如下代碼:

from openpyxl import load_workbook#打開已有的工作簿,創(chuàng)建一個(gè)對(duì)象wb = load_workbook('test1.xlsx')#  激活當(dāng)前sheet表ws = wb.active#打印當(dāng)前工作表的名字print(ws.title)運(yùn)行結(jié)果:Sheet1


如果要修改工作表的名字,我們運(yùn)行以下代碼:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')ws.title='第一個(gè)表'wb.save('test1.xlsx')

運(yùn)行結(jié)果:

如果我們需要新建表,可以使用下面的命令:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')wb.create_sheet('最后的位置')wb.create_sheet('倒數(shù)第二的位置',-1)wb.create_sheet('最前面的位置',0)wb.save('test1.xlsx')


最后一定要記得保存,參數(shù)里面要寫上為文件名:

如果要?jiǎng)h除表,使用下面的命令:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')del wb['倒數(shù)第二的位置']wb.save('test1.xlsx')

結(jié)果如下:

可以看到,剛才創(chuàng)建的'倒數(shù)第二的位置'這個(gè)表被刪除了!我們可以通過下面的命令來指定工作表:

wb.sheetnames:# 獲取文檔所有工作表名稱,返回一個(gè)列表
wb['Sheet1']:# 獲取指定的工作表
wb.active:# 獲取當(dāng)前活躍的工作表

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')#獲取所有的工作表名稱print(wb.sheetnames)#指定即將要操作的工作表print(wb['Sheet2'])#獲取當(dāng)前激活的工作表print(wb.active)wb.save('test1.xlsx')運(yùn)行結(jié)果:['最前面的位置', '第一個(gè)表', 'Sheet2', 'Sheet3',   '最后一個(gè)表', '最后的位置']<Worksheet 'Sheet2'><Worksheet '最后的位置'>


如果想修改當(dāng)前表標(biāo)簽的顏色:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')#修改當(dāng)前工作表標(biāo)簽顏色(紅色)ws=wb.activews.sheet_properties.tabColor = 'ff0000'wb.save('test1.xlsx')

運(yùn)行結(jié)果如下:

復(fù)制工作表:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')ws=wb.activewb.copy_worksheet(ws)wb.save('test1.xlsx')


運(yùn)行結(jié)果如下:

可以通過下面命令獲得工作表的信息:


from openpyxl import load_workbookwb = load_workbook('test1.xlsx')# 獲取文檔的字符集編碼print(wb.encoding, end='\n\n')# 獲取文檔的元數(shù)據(jù)如標(biāo)題,創(chuàng)建者,創(chuàng)建日期等print(wb.properties)wb.save('test1.xlsx')結(jié)果如下:utf-8<openpyxl.packaging.core.DocumentProperties object>Parameters:creator='openpyxl', title=None, description=None, subject=None, identifier=None, ........


如何獲取某一個(gè)表中的最大行和列呢?

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')ws=wb.activey=ws.max_columnx=ws.max_rowprint(x,y)wb.save('test1.xlsx')結(jié)果:5 3

我們來驗(yàn)證一下,執(zhí)行前已經(jīng)寫入一些數(shù)據(jù):

果然是5行,3列的數(shù)據(jù)!如果要獲取其中單元格的值:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')# 獲取單元格的值ws=wb.active# 選擇單個(gè)單元格(獲取指定位置的單元格對(duì)象)print(ws['A2'].value)print(ws.cell(2, 1).value)  # 先行后列,都是索引下標(biāo)wb.save('test1.xlsx')結(jié)果:66

我們來看看:

獲取單元格的屬性有哪些命令:

from openpyxl import load_workbookwb = load_workbook('test1.xlsx')ws=wb.active# 獲取指定位置的單元格對(duì)象cell = ws['B2']print('單元格列索引',cell.col_idx)print('單元格列索引',cell.column)print('單元格的行索引',cell.row)print('單元格列名',cell.column_letter)print('單元格的坐標(biāo)',cell.coordinate)wb.save('test1.xlsx')輸出:?jiǎn)卧窳兴饕?2單元格列索引 2單元格的行索引 2單元格列名 B單元格的坐標(biāo) B2


重點(diǎn)來了,怎么修改單元格的值呢?


from openpyxl import load_workbookwb = load_workbook('test1.xlsx')#寫入單元格ws=wb['第一個(gè)表']#在A2單元格寫入數(shù)據(jù)ws['A2']='寫入第1個(gè)數(shù)據(jù)'#在第1行,第2列寫入數(shù)據(jù)ws.cell(1,2).value='寫入第2個(gè)數(shù)據(jù)'wb.save('test1.xlsx')

運(yùn)行結(jié)果如下:

在最后一行追加數(shù)據(jù)的方法:


from openpyxl import load_workbookwb = load_workbook('test1.xlsx')#在最后一行追加數(shù)據(jù)ws=wb['第一個(gè)表']ws.append([1, 2, 3])wb.save('test1.xlsx')

運(yùn)行結(jié)果:

讀取行和列的數(shù)據(jù),準(zhǔn)備數(shù)據(jù)如下

讀取代碼:


from openpyxl import load_workbookwb = load_workbook('test1.xlsx')#讀取列的方法ws=wb['第一個(gè)表']#讀取第1列(方法1)x=ws.max_rows=ws[f'1:{x}']print('第1列數(shù)據(jù),方法1')for i in s: # print(type(i)) print(i[0].value)#元組需要下標(biāo)#讀取第1列(方法2)p=ws['A']print('第1列數(shù)據(jù),方法2')for j in p: print(j.value)#對(duì)象不可下標(biāo)#讀取行的方法#讀取第一行(方法1)m=ws['1']print('第1行數(shù)據(jù),方法1')for q in m: print(q.value) # 對(duì)象不可下標(biāo)#讀取第一行(方法2)n=ws['2:3']print('第2行到第3行數(shù)據(jù),方法2')#獲得一個(gè)二維數(shù)組,需要2次循環(huán)取出數(shù)據(jù)for d in n: for u in d: print(u.value) wb.save('test1.xlsx')

輸出結(jié)果如下:

第1列數(shù)據(jù),方法1A1A2A3第1列數(shù)據(jù),方法2A1A2A3第1行數(shù)據(jù),方法1A1B1C1第2行到第3行數(shù)據(jù),方法2A2B2C2A3B3C3


刪除行和列:

#刪除行和列ws.delete_cols(1)  # 刪除第一列,以此類推、n代表刪除第n列ws.delete_rows(1)  # 刪除第一行,以此類推、n代表刪除第n行


運(yùn)行結(jié)果如下:


以上是Openpyxl的常規(guī)操作,如果需要設(shè)置樣式,插入公式等更多的應(yīng)用,需要導(dǎo)入Openpyxl的其他模塊;

更多復(fù)雜的數(shù)據(jù)處理可能還會(huì)用到NumPy或者Pandas等第三方庫。

寫程序可能比不上熟練使用VBA來得快,但對(duì)于長(zhǎng)期重復(fù)的操作,Python的優(yōu)勢(shì)是顯而易見的。 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python操作Excel模塊openpyxl
實(shí)例11:用Python給Excel所有工作表添加圖片
Python中用OpenPyXL處理Excel表格
openpyxl初入門
OpenPyXL的使用教程(一)
Openpyxl 創(chuàng)建一個(gè)工作簿
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服