1. 程式人生 > >python3操作Excel學習筆記

python3操作Excel學習筆記

幫助文件: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)