2019-01-04
OpenPyXl是一個(gè)Python的模塊 可以用來處理excle表格
安裝:
直接 pip install openpyxl
就可以
使用時(shí)再代碼內(nèi) from openpyxl import Workbook
或者from openpyxl import load_workbook
前者 不需要有excle文件存在 后者需要傳入一個(gè)excle文件
前者可以憑空產(chǎn)生一個(gè) 后者不行
openpyxl三步走
-
獲取work book
-
獲取 work sheet
-
再然后 獲取單元格 進(jìn)行操作
-
保存文件
ps : 獲取位置的時(shí)候pos可以用pos = 'A'+ int 但是加的那個(gè)數(shù)字不能是 0 不然會(huì)報(bào)錯(cuò)
可以自己寫一個(gè)爬 網(wǎng)站啥的 豆瓣啊 知乎啊 或者網(wǎng)易云的音樂
一、獲取工作簿 就是一個(gè)excle層面的對象
from openpyxl import Workbook
from openpyxl import load_workbook
wb = Workbook()
wb = load_workbook("temp.xlsx")
- ps:如果不想在文件夾中創(chuàng)建一個(gè)excle文件就使用
Workbook
的方式,以上是獲取工作簿的兩個(gè)方法 第一種不需要加載文件 后者需要加載文件惑淳,
二卷中、獲取當(dāng)前工作表sheet 當(dāng)前謝特 也就是當(dāng)前的翔哥
一個(gè)工作簿(workbook)在創(chuàng)建的同時(shí)也至少創(chuàng)建了一個(gè)工作表(worksheet)擒滑,可以通過openpyxl.workbook.Workbook.active()的調(diào)用得到當(dāng)前正在運(yùn)行的工作表炒瘸,
ws = wb.active
-
注意:該函數(shù)調(diào)用工作表的索引(_active_sheet_index)膘滨,默認(rèn)是0。除非你修改了這個(gè)值捶枢,否則你使用該函數(shù)一直是在對第一張工作表進(jìn)行操作握截。
想要獲取別的sheet的話可以使用:work_sheet = wb[sheet_name]#直接在work_book后面[ sheet_name ]
如何創(chuàng)建一個(gè)sheet
使用openpyxl.workbook.Workbook.create_sheet()
新建一張表,報(bào)錯(cuò)的給出指令self._add_sheet(sheet=new_ws, index=index)
,
-
就是說create_sheet可以傳入兩個(gè)參數(shù)烂叔,第一個(gè)就是sheet的名字谨胞,第二個(gè) 傳0 或者不傳
ws1 = wb.create_sheet() #默認(rèn)插在工作簿末尾 # ws2 = wb.create_sheet(0) # 插入在工作簿的第一個(gè)位置 # ws2 = wb.create_sheet("YOURSHEET" , 0) #就是在工作簿的最前面創(chuàng)建一個(gè)工作表 # ws.title = "New Title"#對某一個(gè)ws名字進(jìn)行賦值
不傳參數(shù)的話就sheet1蒜鸡、sheet2胯努、sheet3····一直創(chuàng)建下去
sheet標(biāo)簽欄的背景色默認(rèn)為白色,可以通過提供一個(gè)RRGGBB顏色碼改變標(biāo)簽欄的字體顏色:
ws.sheet_properties.tabColor = "1072BA"
這個(gè)sheet名字變白 逢防,背景色變藍(lán) 假裝有個(gè)圖片
-
一旦知道了sheet的名字就可以通過workbook的key或者該工作表
ws3 = wb["New Title"] ws4 = wb.get_sheet_by_name("New Title")
-
可以通過
openpyxl.workbook.Workbook.get_sheet_names()
方法得到工作簿的所有工作表叶沛。print(wb.get_sheet_names()) [u'YOURSHEET', u'Sheet', u'MYSHEET', u'Sheet1', u'Sheet2']
-
你也可以循環(huán)得到所有的工作表
for sheet in wb: print(sheet.title)
三、 往下就是操作單元格了
假裝這是一個(gè)分割線 怎么用忘朝?