一、Pythonopenpyxl概述
Pythonopenpyxl是一種在Python中操作Excel文件的庫,可以讀寫xlsx文件,支持Excel 2010及更高版本,可以生成圖表、數據透視表以及公式等Excel特性。
Pythonopenpyxl的優點在於其可讀性、性能和容錯率,因為它基於業界標準的壓縮和解壓縮庫實現,同時可以利用Python的強大腳本處理能力實現更多功能。
下面我們來看看Pythonopenpyxl常用的幾個方面。
二、讀取Excel文件
Pythonopenpyxl可以讀取Excel文件,方法如下:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
print(sheet['A1'].value)
代碼解釋:
openpyxl.load_workbook函數讀取指定的Excel文件example.xlsx,把所有的sheet載入到內存中,並且把其中一個名為Sheet1的sheet賦值給變量sheet。sheet[‘A1’].value表示獲取sheet中A1單元格的值。
三、寫入Excel文件
Pythonopenpyxl可以寫入Excel文件,方法如下:
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 'Hello'
sheet['B1'] = 'World!'
wb.save('example.xlsx')
代碼解釋:
openpyxl.Workbook()生成一個內存中的Workbook對象,wb.active賦值為當前對象的第一個sheet。sheet[‘A1’] = ‘Hello’表示在當前sheet的A1單元格中寫入Hello,sheet[‘B1’] = ‘World!’表示在當前sheet的B1單元格中寫入World!關鍵代碼都寫完之後使用wb.save(‘example.xlsx’)把當前對象寫入到磁盤的example.xlsx文件中。
四、公式計算
Pythonopenpyxl可以做公式計算,方法如下:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet['C1'] = '=SUM(A1:B1)'
wb.save('example.xlsx')
代碼解釋:
openpyxl.load_workbook函數讀取指定的Excel文件example.xlsx,把所有的sheet載入到內存中,並且把當前對象wb.active賦值為當前對象的第一個sheet。sheet[‘C1’] = ‘=SUM(A1:B1)’表示在當前sheet的C1單元格中做一個公式計算,計算A1:B1所有單元格的和。最後使用wb.save(‘example.xlsx’)把當前對象寫入到磁盤的example.xlsx文件中。
五、數據透視表
Pythonopenpyxl可以操作數據透視表,方法如下:
import openpyxl
from openpyxl import Workbook
from openpyxl import utils
from openpyxl.utils import column_index_from_string as get_letter
from openpyxl import worksheet
wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active
ws.title = "Pivot"
ws['A1'] = "Region"
ws['B1'] = "Employee"
ws['C1'] = "Sales"
ws['A2'] = "West"
ws['B2'] = "Johann"
ws['C2'] = "100"
ws['A3'] = "West"
ws['B3'] = "Johann"
ws['C3'] = "150"
ws['A4'] = "West"
ws['B4'] = "Mary Sue"
ws['C4'] = "200"
ws['A5'] = "West"
ws['B5'] = "Mary Sue"
ws['C5'] = "175"
ws['A6'] = "East"
ws['B6'] = "Mark"
ws['C6'] = "75"
ws['A7'] = "East"
ws['B7'] = "Mark"
ws['C7'] = "100"
ws['A8'] = "East"
ws['B8'] = "Ryan"
ws['C8'] = "150"
ws['A9'] = "East"
ws['B9'] = "Ryan"
ws['C9'] = "200"
ws = wb.create_sheet("PivotOutput")
ws = worksheet.Worksheet(ws._ workbook, "PivotOutput")
ws.title = "PivotOutput"
pt = ws.pivot_table(ws['A1:C9'], rows='Region', cols='Employee', values='Sales')
wb.save('example.xlsx')
代碼解釋:
openpyxl.load_workbook函數讀取指定的Excel文件example.xlsx,把所有的sheet載入到內存中,並且把當前對象wb.active賦值為當前對象的第一個sheet。代碼中hard code一些數據,這部分代碼是為了生成測試數據。pt = ws.pivot_table(ws[‘A1:C9′], rows=’Region’, cols=’Employee’, values=’Sales’)表示設置一個數據透視表,行字段是Region,列字段是Employee,值字段是Sales。
六、圖表生成
Pythonopenpyxl可以生成圖表,方法如下:
import openpyxl
from openpyxl.chart import BarChart, Reference
wb = openpyxl.Workbook()
sheet = wb.active
for i in range(1, 11):
sheet['A' + str(i)] = i
sheet['B' + str(i)] = i
values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)
chart = BarChart()
chart.add_data(values)
sheet.add_chart(chart, 'D1')
wb.save('example.xlsx')
代碼解釋:
openpyxl.Workbook()生成一個內存中的Workbook對象,wb.active賦值為當前對象的第一個sheet。使用一個循環把1-10寫入第一個sheet的A列和B列。values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)表示把B列的值賦值給變量values。實例化一個BarChart並且把變量values賦值給圖表。使用sheet.add_chart(chart, ‘D1’)在D1單元格位置創建圖表。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/252016.html