




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python自動(dòng)化操作Excel方法詳解(xlrd,xlwt)目錄一、Python操作Excel7大庫對(duì)比二、xlrd讀取excel操作1.打開文件2.獲取所有表名3.指定sheet表4.對(duì)sheet表的行操作5.對(duì)sheet表的列操作三、xlwt寫入Excel表操作1.寫入單個(gè)數(shù)據(jù)2.寫入多個(gè)數(shù)據(jù)3.設(shè)置列寬4.設(shè)置行高5.設(shè)置單元格風(fēng)格
一、Python操作Excel7大庫對(duì)比
Excel是Windows環(huán)境下流行的、強(qiáng)大的電子表格應(yīng)用。無論是在工作中還是學(xué)習(xí)中我們都幾乎在不間斷的使用Excel來記錄或者處理一些數(shù)據(jù)。例如,可能有-個(gè)無聊的任務(wù),需要從一個(gè)電子表格拷貝一些數(shù)據(jù),粘貼到另一個(gè)電子表格中?;蛘呖赡苄枰獜膸浊兄刑暨x幾行,根據(jù)某種條件稍作修改?;蛘咝枰榭磶装俜莶块T預(yù)算電子表格,尋找其中的指定內(nèi)容。正是這種無聊無腦的電子表格任務(wù),如果讓人工來手動(dòng)完成,則無論是時(shí)間升本還是精力成本都不是一件好事情,但是可以通過Python來完成。
7大庫功能對(duì)比圖如下(本文主要介紹:xlrd和xlwt):
二、xlrd讀取excel操作
xlrd模塊用于讀取Excel的數(shù)據(jù),速度非??臁VС?xls和.xlsx兩種文件格式的讀取
1.cmd控制臺(tái)安裝模塊:
pipinstallxlrd
2.導(dǎo)入模塊:
importxlrd
測(cè)試表如下:
1.打開文件
xlrd.open_workbook(path)
wb=xlrd.open_workbook("./a.xls")
print(wb)
運(yùn)行結(jié)果:
xlrd.book.Bookobjectat0x000001F905A33DC0
2.獲取所有表名
wb.sheet_names()
sheet_names_list=wb.sheet_names()
print(sheet_names_list)
運(yùn)行結(jié)果:
[Sheet1,Sheet2,Sheet3]
3.指定sheet表
wb.sheet_by_index(索引)orwb.sheet_by_name(sheet表名)
#方式1:索引順序獲取
sheet_1=wb.sheet_by_index(0)
#方式2:名稱獲取
sheet_2=wb.sheet_by_name("Sheet1")
4.對(duì)sheet表的行操作
1.獲取sheet表總函數(shù):sheet.nrows
2.返回由該行中所有的單元格對(duì)象組成的列表,列表內(nèi)是鍵值對(duì):sheet.row(1),如:[列名1:值,列名2:值,...]或者sheet.row_slice(1)
3.返回指定行的所有單元格數(shù)值組成的列表:sheet.row_values(rowx,start_colx=0,end_colx=None),如:[值1,值2,...]
4.返回指定行的有效長(zhǎng)度:sheet.row_len(rowx)
#1.獲取sheet表總函數(shù):sheet.nrows
print("總行數(shù)為:",sheet_1.nrows)
#2.返回由該行中所有的單元格對(duì)象組成的列表,列表內(nèi)是鍵值對(duì):sheet.row(1)
print(sheet_1.row(1))
#或者sheet.row_slice(1)
print(sheet_1.row_slice(1))
#3.返回指定行的所有單元格數(shù)值組成的列表:sheet.row_values(rowx,start_colx=0,end_colx=None)
print(sheet_1.row_values(1))
#4.返回指定行的有效長(zhǎng)度:sheet.row_len(rowx)
print("返回指定行的有效長(zhǎng)度:",sheet_1.row_len(1))
print('-'*20)
#5.讀取整個(gè)表
foriinrange(sheet_1.nrows):
print(sheet_1.row_values(i))
運(yùn)行結(jié)果:
總行數(shù)為:4
[text:物品1,empty:,number:100.0,text:EUR0.1,text:EUR0.1]
[text:物品1,empty:,number:100.0,text:EUR0.1,text:EUR0.1]
[物品1,,100.0,EUR0.1,EUR0.1]
返回指定行的有效長(zhǎng)度:5
--------------------
[item,b,PCS,UNIT,TOTAL]
[物品1,,100.0,EUR0.1,EUR0.1]
[物品2,,100.0,EUR0.1,EUR0.1]
[物品3,,200.0,EUR0.2,EUR0.2]
5.對(duì)sheet表的列操作
1.返回指定sheet表的有效列數(shù):sheet.ncols
2.返回由該列中所有的單元格對(duì)象組成的列表,列表內(nèi)是鍵值對(duì):sheet.col(1),如:[列名1:值,列名2:值,...]或者sheet.col_slice(1)
3.返回指定列的所有單元格數(shù)值組成的列表:sheet.col_values(colx,start_colx=0,end_colx=None),如:[列名,值1,值2,...]
#1.返回指定sheet表的有效列數(shù):sheet.ncols
print("總列數(shù)為:",sheet_1.ncols)
#2.返回由該列中所有的單元格對(duì)象組成的列表,列表內(nèi)是鍵值對(duì):sheet.col(1)
print(sheet_1.col(1))
#或者sheet.col_slice(1)
print(sheet_1.col_slice(1))
#3.返回指定列的所有單元格數(shù)值組成的列表:sheet.col_values(colx,start_colx=0,end_colx=None)
print(sheet_1.col_values(0))#帶列名
print(sheet_1.col_values(0,1))#不帶列名
print('-'*20)
#4.讀取全部表
foriinrange(sheet_1.ncols):
print(sheet_1.col_values(i))
運(yùn)行結(jié)果:
總列數(shù)為:5
[text:b,empty:,empty:,empty:]
[text:b,empty:,empty:,empty:]
[item,物品1,物品2,物品3]
[物品1,物品2,物品3]
--------------------
[item,物品1,物品2,物品3]
[b,,,]
[PCS,100.0,100.0,200.0]
[UNIT,EUR0.1,EUR0.1,EUR0.2]
[TOTAL,EUR0.1,EUR0.1,EUR0.2]
三、xlwt寫入Excel表操作
xlwt模塊可以將數(shù)據(jù)寫入到Excel工作簿中。目前已支持寫入.xls和.xlsx兩種文件格式
1.cmd控制臺(tái)安裝模塊:
pipinstallxlwt
2.導(dǎo)入模塊:
importxlwt
1.寫入單個(gè)數(shù)據(jù)
1.創(chuàng)建Excel表對(duì)象:xlwt.Workbook(encoding=utf8)
2.新建sheet表:worksheet=workbook.add_sheet(Sheet1)
3.寫入數(shù)據(jù)到指定單元格:worksheet.write(0,0,python)。第一個(gè)參數(shù)是第i行,第二個(gè)是第j列,第三個(gè)是要寫的參數(shù)(字符串或數(shù)字)
4.保存文件:workbook.save(test.xlsx)。目前已支持寫入.xls和.xlsx兩種文件格式
測(cè)試代碼:
importxlwt
#1.創(chuàng)建Excel表對(duì)象
workbook=xlwt.Workbook(encoding='utf8')
#2.新建sheet表
worksheet=workbook.add_sheet('Sheet1')
#3.寫入數(shù)據(jù)到指定單元格
worksheet.write(0,0,"python")
#4.保存文件分兩種格式
workbook.save('test.xls')
workbook.save('test.xlsx')
運(yùn)行結(jié)果如下:生成兩個(gè)新文件
2.寫入多個(gè)數(shù)據(jù)
測(cè)試代碼:
importxlwt
data_list=[('小白','20','男'),('小黑','21','男'),('小紅','20','女')]
#1.創(chuàng)建Excel表對(duì)象
workbook=xlwt.Workbook(encoding='utf8')
#2.新建sheet表
worksheet=workbook.add_sheet('Sheet1')
#3.自定義列名
col1=('姓名','年齡','性別')
#4.將列屬性元組col寫進(jìn)sheet表單中第一行
foriinrange(0,len(col1)):
worksheet.write(0,i,col1[i])
#5.將數(shù)據(jù)寫進(jìn)sheet表單中
foriinrange(0,len(data_list)):
data=data_list[i]
forjinrange(0,len(col1)):
worksheet.write(i+1,j,data[j])
#6.保存文件分兩種格式
workbook.save('test.xls')
運(yùn)行結(jié)果:
3.設(shè)置列寬
cols_num是列的數(shù)目,可以通過修改12這個(gè)值,修改列的寬度
forcinrange(len(col1)):
worksheet.col(c).width=256*24
運(yùn)行結(jié)果:
4.設(shè)置行高
設(shè)置行高,修改1600為別的值,可以修改行的高度
測(cè)試代碼:
#5.將數(shù)據(jù)寫進(jìn)sheet表單中
foriinrange(0,len(data_list)):
data=data_list[i]
forjinrange(0,len(col1)):
worksheet.write(i+1,j,data[j])
#6.設(shè)置行高
worksheet.row(i+1).height_mismatch=True
worksheet.row(i+1).height=1600#設(shè)置行高
運(yùn)行結(jié)果:
5.設(shè)置單元格風(fēng)格
常用設(shè)置單元格的屬性:
樣式說明xlwt.Font()字體設(shè)置xlwt.Pattern()背景設(shè)置xlwt.Borders()邊框設(shè)置xlwt.Alignment()對(duì)準(zhǔn)設(shè)置
測(cè)試代碼:
defbody_style():
#一、創(chuàng)建一個(gè)樣式對(duì)象,初始化樣式style
style=xlwt.XFStyle()#CreateStyle對(duì)象
#二、字體風(fēng)格設(shè)置
font=xlwt.Font()#CreateFont對(duì)象
="SimSun"#設(shè)置字體類型,宋體
font.colour_index=4#設(shè)置字體顏色
font.height=20*12#字體大小,12為字號(hào),20為衡量單位
font.bont=True#設(shè)置字體加粗
font.underline=True#下劃線
font.italic=True#斜體字
#二、背景設(shè)置
pattern=xlwt.Pattern()
pattern.pattern=xlwt.Pattern.SOLID_PATTERN#Maybe:NO_PATTERN,SOLID_PATTERN,or0x00through0x12
pattern.pattern_fore_colour=4#給背景顏色賦值
#三、邊框設(shè)置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 4089-2021棉花公證檢驗(yàn)現(xiàn)場(chǎng)檢驗(yàn)工作規(guī)范
- DB32/T 3935-2020堤防工程技術(shù)管理規(guī)程
- DB32/T 3874-2020額定電壓35 kV及以下擠包塑料絕緣電力電纜用石墨烯復(fù)合半導(dǎo)電屏蔽料通用要求
- DB32/T 3761.2-2020新型冠狀病毒肺炎疫情防控技術(shù)規(guī)范第2部分:學(xué)校
- DB32/T 3522.4-2019高速公路服務(wù)規(guī)范第4部分:清障救援服務(wù)
- DB32/T 3503-2019公路工程信息模型分類和編碼規(guī)則
- DB32/T 2799-2015共振法處理液化地基技術(shù)規(guī)程
- DB31/T 865-2014購(gòu)物中心運(yùn)營(yíng)管理規(guī)范
- DB31/T 568-2011人身保險(xiǎn)業(yè)窗口服務(wù)質(zhì)量規(guī)范
- DB31/T 539-2020中小學(xué)校及幼兒園教室照明設(shè)計(jì)規(guī)范
- T-PPAC 701-2021 企業(yè)商業(yè)秘密管理規(guī)范
- 經(jīng)絡(luò)腧穴學(xué)試題庫與參考答案
- 2025年保健按摩師(高級(jí))資格認(rèn)證考試題庫(附答案)
- 2024-2025人教七上數(shù)學(xué)26第3章代數(shù)式小結(jié)與復(fù)習(xí)【教案】
- 評(píng)估與反饋機(jī)制在教研中的重要性
- 供應(yīng)商廉潔態(tài)發(fā)言材料
- 字節(jié)跳動(dòng)經(jīng)營(yíng)分析報(bào)告
- 微信解除保全申請(qǐng)書
- 起重機(jī)委托使用協(xié)議書范本
- 中國(guó)電子鼻行業(yè)發(fā)展環(huán)境、市場(chǎng)運(yùn)行格局及投資前景研究報(bào)告(2025版)
- 如何做好臨床兒科護(hù)理帶教
評(píng)論
0/150
提交評(píng)論