python3操作Excel學習筆記
阿新 • • 發佈:2019-02-11
幫助文件:https://pypi.python.org/pypi/openpyxl/2.5.1。
1 安裝openpyxl包
環境:本機安裝了python2和python3。
有2種安裝方式。
1.1 pip安裝openpyxl包
- CMP環境,切換到目錄D:\python3。
- 執行pip3 install openpyxl。
- 進入python環境,匯入openpyxl包,驗證安裝成功。
1.2 原始碼安裝
- 下載openpyxl包,下載地址:https://pypi.python.org/pypi/openpyxl。
- 解壓到目錄D:\python3\openpyxl-2.5.1。
- 進入CMD環境,切換到目錄D:\python3\openpyxl-2.5.1,執行python setup.py install。
- 進入python環境,匯入openpyxl包,驗證安裝成功。
2 操作workbook
from openpyxl import Workbook import datetime filePath = r'e:/python/test.xlsx' #建立Excel例項 myWb = Workbook() #第一個sheet myWs0 = myWb.active #新建sheet表 myWs1 = myWb.create_sheet("第一個") myWs2 = myWb.create_sheet("no 2") myWs3 = myWb.create_sheet("第四個") #列印所有sheet的名字 print (myWb.sheetnames) #修改sheet的title myWs2.title = "第二個" #修改sheet名字的背景色 myWs2.sheet_properties.tabColor = "1072BA" #當sheet有title後,可以直接用列表讀取tilte名字 print (myWb.sheetnames[2]) myWs4 = myWb["第一個"] #對每個sheet寫入資料 myWs0['A1'] = "自帶的" myWs1['B2'] = "第一個" myWs2['C3'] = "no 2" myWs3['D4'] = "第四個" myWs4['E5'] = "中國" myWb.save(filePath) #儲存excel
3 操作單元格data
可以直接寫單元格值,但是讀單元格value時,需要將單元格轉換為sheet.cell型別。
from openpyxl import Workbook import datetime filePath = r'e:/python/test.xlsx' #建立Excel例項 myWb = Workbook() #第一個sheet表 myWs0 = myWb.active #新建sheet表 myWs1 = myWb.create_sheet("我的sheet") #對每個sheet寫入資料 myWs0['A1'] = "自帶的" myWs1['B2'] = "第一個" #往sheet B3中寫資料 myWs1.cell(row=3,column=2,value=10) #寫入單元格A1-E5,值為單元格號 for i in range(1,6): for j in range(1,6): value = str(chr(ord('A')+j-1)) + str(i) myWs1.cell(row=i, column=j, value="%s"%value) #讀取單元格B2的值 mycell = myWs1.cell(row=2,column=2) print (mycell.value) #列印C3的值 print (myWs1.cell(3,3).value) #輸出sheet行數、列數 print (myWs1.max_row,end=" ") print (myWs1.max_row) #儲存Excel表格 myWb.save(filePath)
4 載入已有Excel操作
from openpyxl import Workbook,load_workbook
import datetime
filePath = r'e:/python/test.xlsx'
myWb = load_workbook(filePath)
myWs = myWb.active
myWs['B2'] = u"中國"
myWs['C3'] = "C3"
#儲存Excel表格
myWb.save(filePath)
5 遺留問題
載入的Workbook用cell.value沒法讀到值,新建的Workbook能讀到。
from openpyxl import Workbook,load_workbook
import datetime
filePath = r'e:/python/test.xlsx'
filePath1 = r'e:/python/test1.xlsx'
myWb = load_workbook(filePath)
myWs = myWb.active
myWs['B2'] = u"中國"
myWs['C3'] = "C3"
myWb2 = Workbook()
myWs2 = myWb2.create_sheet("new")
myWs2['B2'] = "B2"
#列印2種Workbook例項型別,都是<class 'openpyxl.workbook.workbook.Workbook'>
print (type(myWb))
print (type(myWb2))
#myWs沒有cell方法
print (myWs2.cell(2,2).value)
#儲存Excel表格
myWb.save(filePath)
myWb2.save(filePath1)