




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Python自動化操作Excel方法詳解(xlrd,xlwt)目錄一、Python操作Excel7大庫對比二、xlrd讀取excel操作1.打開文件2.獲取所有表名3.指定sheet表4.對sheet表的行操作5.對sheet表的列操作三、xlwt寫入Excel表操作1.寫入單個數據2.寫入多個數據3.設置列寬4.設置行高5.設置單元格風格
一、Python操作Excel7大庫對比
Excel是Windows環境下流行的、強大的電子表格應用。無論是在工作中還是學習中我們都幾乎在不間斷的使用Excel來記錄或者處理一些數據。例如,可能有-個無聊的任務,需要從一個電子表格拷貝一些數據,粘貼到另一個電子表格中。或者可能需要從幾千行中挑選幾行,根據某種條件稍作修改。或者需要查看幾百份部門預算電子表格,尋找其中的指定內容。正是這種無聊無腦的電子表格任務,如果讓人工來手動完成,則無論是時間升本還是精力成本都不是一件好事情,但是可以通過Python來完成。
7大庫功能對比圖如下(本文主要介紹:xlrd和xlwt):
二、xlrd讀取excel操作
xlrd模塊用于讀取Excel的數據,速度非常快。支持.xls和.xlsx兩種文件格式的讀取
1.cmd控制臺安裝模塊:
pipinstallxlrd
2.導入模塊:
importxlrd
測試表如下:
1.打開文件
xlrd.open_workbook(path)
wb=xlrd.open_workbook("./a.xls")
print(wb)
運行結果:
xlrd.book.Bookobjectat0x000001F905A33DC0
2.獲取所有表名
wb.sheet_names()
sheet_names_list=wb.sheet_names()
print(sheet_names_list)
運行結果:
[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.對sheet表的行操作
1.獲取sheet表總函數:sheet.nrows
2.返回由該行中所有的單元格對象組成的列表,列表內是鍵值對:sheet.row(1),如:[列名1:值,列名2:值,...]或者sheet.row_slice(1)
3.返回指定行的所有單元格數值組成的列表:sheet.row_values(rowx,start_colx=0,end_colx=None),如:[值1,值2,...]
4.返回指定行的有效長度:sheet.row_len(rowx)
#1.獲取sheet表總函數:sheet.nrows
print("總行數為:",sheet_1.nrows)
#2.返回由該行中所有的單元格對象組成的列表,列表內是鍵值對:sheet.row(1)
print(sheet_1.row(1))
#或者sheet.row_slice(1)
print(sheet_1.row_slice(1))
#3.返回指定行的所有單元格數值組成的列表:sheet.row_values(rowx,start_colx=0,end_colx=None)
print(sheet_1.row_values(1))
#4.返回指定行的有效長度:sheet.row_len(rowx)
print("返回指定行的有效長度:",sheet_1.row_len(1))
print('-'*20)
#5.讀取整個表
foriinrange(sheet_1.nrows):
print(sheet_1.row_values(i))
運行結果:
總行數為: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]
返回指定行的有效長度: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.對sheet表的列操作
1.返回指定sheet表的有效列數:sheet.ncols
2.返回由該列中所有的單元格對象組成的列表,列表內是鍵值對:sheet.col(1),如:[列名1:值,列名2:值,...]或者sheet.col_slice(1)
3.返回指定列的所有單元格數值組成的列表:sheet.col_values(colx,start_colx=0,end_colx=None),如:[列名,值1,值2,...]
#1.返回指定sheet表的有效列數:sheet.ncols
print("總列數為:",sheet_1.ncols)
#2.返回由該列中所有的單元格對象組成的列表,列表內是鍵值對:sheet.col(1)
print(sheet_1.col(1))
#或者sheet.col_slice(1)
print(sheet_1.col_slice(1))
#3.返回指定列的所有單元格數值組成的列表: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))
運行結果:
總列數為: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模塊可以將數據寫入到Excel工作簿中。目前已支持寫入.xls和.xlsx兩種文件格式
1.cmd控制臺安裝模塊:
pipinstallxlwt
2.導入模塊:
importxlwt
1.寫入單個數據
1.創建Excel表對象:xlwt.Workbook(encoding=utf8)
2.新建sheet表:worksheet=workbook.add_sheet(Sheet1)
3.寫入數據到指定單元格:worksheet.write(0,0,python)。第一個參數是第i行,第二個是第j列,第三個是要寫的參數(字符串或數字)
4.保存文件:workbook.save(test.xlsx)。目前已支持寫入.xls和.xlsx兩種文件格式
測試代碼:
importxlwt
#1.創建Excel表對象
workbook=xlwt.Workbook(encoding='utf8')
#2.新建sheet表
worksheet=workbook.add_sheet('Sheet1')
#3.寫入數據到指定單元格
worksheet.write(0,0,"python")
#4.保存文件分兩種格式
workbook.save('test.xls')
workbook.save('test.xlsx')
運行結果如下:生成兩個新文件
2.寫入多個數據
測試代碼:
importxlwt
data_list=[('小白','20','男'),('小黑','21','男'),('小紅','20','女')]
#1.創建Excel表對象
workbook=xlwt.Workbook(encoding='utf8')
#2.新建sheet表
worksheet=workbook.add_sheet('Sheet1')
#3.自定義列名
col1=('姓名','年齡','性別')
#4.將列屬性元組col寫進sheet表單中第一行
foriinrange(0,len(col1)):
worksheet.write(0,i,col1[i])
#5.將數據寫進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')
運行結果:
3.設置列寬
cols_num是列的數目,可以通過修改12這個值,修改列的寬度
forcinrange(len(col1)):
worksheet.col(c).width=256*24
運行結果:
4.設置行高
設置行高,修改1600為別的值,可以修改行的高度
測試代碼:
#5.將數據寫進sheet表單中
foriinrange(0,len(data_list)):
data=data_list[i]
forjinrange(0,len(col1)):
worksheet.write(i+1,j,data[j])
#6.設置行高
worksheet.row(i+1).height_mismatch=True
worksheet.row(i+1).height=1600#設置行高
運行結果:
5.設置單元格風格
常用設置單元格的屬性:
樣式說明xlwt.Font()字體設置xlwt.Pattern()背景設置xlwt.Borders()邊框設置xlwt.Alignment()對準設置
測試代碼:
defbody_style():
#一、創建一個樣式對象,初始化樣式style
style=xlwt.XFStyle()#CreateStyle對象
#二、字體風格設置
font=xlwt.Font()#CreateFont對象
="SimSun"#設置字體類型,宋體
font.colour_index=4#設置字體顏色
font.height=20*12#字體大小,12為字號,20為衡量單位
font.bont=True#設置字體加粗
font.underline=True#下劃線
font.italic=True#斜體字
#二、背景設置
pattern=xlwt.Pattern()
pattern.pattern=xlwt.Pattern.SOLID_PATTERN#Maybe:NO_PATTERN,SOLID_PATTERN,or0x00through0x12
pattern.pattern_fore_colour=4#給背景顏色賦值
#三、邊框設置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論