python處理excel的模塊有很多,這里只介紹2種openpyxl 和 pandas
openpyxl
python很多處理excel的模塊支持2003杜窄,對(duì)2007的模塊不是太友善利耍。而openpyxl彌補(bǔ)這個(gè)遺憾蚌本。但是由于這個(gè)模塊有自愿者維護(hù)的,有些功能還是不完成隘梨,但這個(gè)模塊還是一直處理維護(hù)中的模塊程癌,所以功能會(huì)越來(lái)越強(qiáng)大。
openpyxl不是python自帶的處理excel的模塊轴猎,所以需要安裝openpyxl的包.
pip install openpyxl
創(chuàng)建文檔
from openpyxl import Workbook
wb= Workbook()
wb.save('test2.xlsx')
其中Workbook()使用workbook獲取一個(gè)實(shí)例嵌莉,這個(gè)實(shí)例需要調(diào)用save()函數(shù)保存到磁盤(pán)上,如果不新建工作表sheet捻脖,默認(rèn)顯示一張title為sheet的工作表锐峭,最后一定使用save方法序列化到本地。
Workbook對(duì)象的方法使用的實(shí)例
方法名 | 具體用法 |
---|---|
create_sheet(self, title=None, index=None) | 創(chuàng)建一個(gè)sheet表格可婶,title為sheet的名稱只祠,index表示插入的位置,默認(rèn)插入到最后 |
add_named_style(self, style) | 添加樣式 |
get_sheet_by_name(self, name) | 返回獲取工作表的名字扰肌,可以指定的表格操作 |
def active(self, *value) | 激活當(dāng)前的表格 |
remove(value) | 刪除指定的表格 |
close() | 對(duì)于只讀或者只寫(xiě)的表格,可以使用這個(gè)方法關(guān)閉 |
Workbook對(duì)象使用方法
1熊杨、add_named_style()曙旭,添加樣式
# 指定一個(gè)樣式
highlight = NamedStyle(name="highlight")
highlight.font=Font(bold=True,size=30)
bd = Side(style='thick', color="000000")
highlight.border = Border(left=bd, top=bd, right=bd, bottom=bd)
# 添加到樣式表
wb.add_named_style(highlight)
#激活當(dāng)前表格
ws = wb.active
#指定區(qū)域顯示該樣式
ws['A1'].style = highlight
2、創(chuàng)建表格
wb.create_sheet("one")
wb.create_sheet("two",0)
3晶府、移除表格
wb.remove(wb.get_sheet_by_name('one'))
4桂躏、保存表格
wb.save('test2.xlsx')
操作表格-Worksheet
1、獲取Worksheet對(duì)象
方法一川陆,使用active 剂习,如果不指定下標(biāo),默認(rèn)是0(第一張表格)
#指定表格的下標(biāo)
wb.active =1
#獲取Worksheet對(duì)象
ws=wb.active
方法二:使用get_sheet_by_name() 方法
sheetnames = wb.get_sheet_names()
ws = wb.get_sheet_by_name(sheetnames[0])
2较沪、title改名字
ws.title ='limie'
3鳞绕、獲取一列數(shù)據(jù)(所有有數(shù)據(jù)的行)
print([j.value for i in ws.rows for j in i])
4、獲取一行的數(shù)據(jù)(所有有數(shù)據(jù)的列)
print([j.value for i in ws.columns for j in i])
5尸曼、獲取指定的cell的值
print(ws['A5'].value)
6们何、cell通過(guò)坐標(biāo)獲取
cell(self, coordinate=None, row=None, column=None,value=None)
ws.cell(row = 2, column = 3)
7、寫(xiě)入數(shù)據(jù)
a控轿、不指定區(qū)域的話,默認(rèn)寫(xiě)到最后有數(shù)據(jù)的行的下一行冤竹,例如第2行有數(shù)據(jù)拂封,那么下次執(zhí)行append的時(shí)候,數(shù)據(jù)插入第三行
wb= load_workbook('test2.xlsx')
wb.active =1
ws=wb.active
ws.append(value for value in ['蘋(píng)果','雪梨','青蘋(píng)果','檸檬'])
wb.save('test2.xlsx')
b鹦蠕、指定某個(gè)單元格冒签,例如把雪梨改為桃子,只需要把a(bǔ)ppend的改為下列就行
ws['B1']='桃子'
cell方法中的函數(shù)row,column的值默認(rèn)從1開(kāi)始
ws.cell(row =1,column=3,value='哈密瓜')
設(shè)置樣式
設(shè)置excel字體樣式钟病、單元格樣式等萧恕,使用的是openpyxl.styles模塊。
Styles是用于改變你的希望顯示的數(shù)據(jù)的樣式档悠。也可以用于設(shè)置指定的單元格或單元區(qū)域的數(shù)字格式廊鸥。
Styles能夠提供的功能有:
1、font to set font size, color, underlining, etc.(能夠設(shè)定字體的大小辖所、顏色惰说、下劃線等屬性)
2、fill to set a pattern or color gradient(能夠設(shè)置單元格的填充樣式或顏色漸變)
3缘回、border to set borders on a cell(能夠設(shè)置單元格的邊框)
4吆视、cell alignment(能夠設(shè)置單元格的對(duì)齊)
5、protection(能夠設(shè)置訪問(wèn)限制)
font = Font(
# name = '微軟雅黑',
size = 15,
bold = True,
italic = False,
vertAlign = None,
underline = 'none',
strike = False,
color = 'FF008B00'
)
# 設(shè)置單元格的填充樣式或者漸變顏色
fill = PatternFill(
fill_type = None,
start_color = 'FFFF3030',
end_color = 'FF000000'
)
# 設(shè)置單元格的對(duì)齊
alignment = Alignment(
horizontal = 'general',
vertical = 'bottom',
text_rotation = 0,
wrap_text = False,
shrink_to_fit = False,
indent = 0
)
# 設(shè)置訪問(wèn)限制
protection = Protection(locked = True,
hidden = False)
TM
PDF Editor