Pythonopenpyxl詳解

一、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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 17:33
下一篇 2024-12-13 17:33

相關推薦

  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25
  • C語言貪吃蛇詳解

    一、數據結構和算法 C語言貪吃蛇主要運用了以下數據結構和算法: 1. 鏈表 typedef struct body { int x; int y; struct body *nex…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論