Home >> Blog >> 如何使用 Python Excel

如何使用 Python Excel

Excel 被認為是 Microsoft 開發的最流行和使用最廣泛的Excel表格應用程式之一。您可以在 Excel 的幫助下組織、分析資料並將其存儲到表格中。從SEO搜尋引擎優化分析師和銷售經理到 CEO,各個領域的專業人士都使用 Excel 創建快速統計資料和處理資料。這些特性使 excel 成為 Python 程式中最流行的資料源之一。

在此處查看示例在 Python中使用 Self

Excel表格因其直觀的性質和處理大型資料集的能力而在當今世界中普遍使用。最重要的是,他們可以在沒有任何技術背景的情況下工作。

找到使用程式碼使用 Excel 的不同方法至關重要,因為與 Excel 的 UI 相比,使用資料和 Python 具有一些明顯的優勢。Python 的開發人員已經實現了讀取、寫入和操作 Excel 文檔的方法。由講師指導的 Python 編寫程式課程 是獲得在 Python 中使用 excel 的實踐經驗的好方法。

您可以通過查看以下清單來檢查Excel表格應用程式的質量:

  • Excel表格是否能夠表示靜態資料?
  • Excel表格是否能夠混合資料、計算和報告?
  • 您的Excel表格中的資料在本質上是否完整且一致?
  • Excel表格是否有組織的工作表結構?

此清單將幫助您驗證您將使用的Excel表格應用程式的定性性質。

實際應用

在本文中,我們將使用openpyxl 處理資料。借助此模塊,您可以將資料庫中的資料提取到 Excel Excel表格中,也可以將 Excel Excel表格轉換為程式格式。在很多情況下,您可能會覺得需要使用 openpyxl 之類的包。讓我們討論其中的一些以全面了解它。

將新產品導入資料庫

考慮一下自己在一家在線商店公司工作。當他們想向在線商店添加新產品時,他們會製作一個包含數百行的 Excel Excel表格,以及產品名稱、描述、價格和一些其他基本資訊,然後將其提供給您。

現在,如果您想導入這些特定資料,您需要遍歷Excel表格的每一行,然後將每個產品添加到在線商店的資料庫中。

將資料庫資料導出到Excel表格

考慮您有一個資料庫表。在這個特定的表格中,您收集了所有用戶的資訊,包括他們的姓名、聯繫電話、Excel郵件地址等。現在,行銷團隊願意集體聯繫所有用戶,推廣公司的新產品。但是,他們既沒有訪問資料庫的權限,也沒有任何關於使用 SQL 提取資訊的想法。

在這種情況下,openpyxl 發揮作用。您可以有效地使用它來遍歷每個用戶記錄並將所需的資訊轉換為 Excel Excel表格。

將資訊附加到現有Excel表格

考慮我們上面討論的同一個在線商店示例。您有一個包含用戶列表的 Excel Excel表格,您的工作是將他們在您的商店中花費的總金額附加到每一行。

為了執行此操作,您必須先閱讀Excel表格,然後遍歷每一行並從資料庫中獲取花費的總金額。最後,您需要將其寫回Excel表格。

啟動 openpyxl

您可以使用 pip 安裝 openpyxl 包。打開終端並編寫以下命令:

$點安裝openpyxl

安裝Excel表格後,您可以製作自己的簡單Excel表格:

從openpyxl導入工作簿

工作簿=工作簿()
Excel表格=工作簿。積極的

Excel表格[ “A1” ] = “你好”
Excel表格[ “B1” ] = “世界!”

工作簿。保存(文件名= “HelloWorld.xlsx”)

如何使用 openpyxl 讀取 Excel Excel表格

讓我們從使用Excel表格可以做的最重要的事情開始,即閱讀它。我們將使用一個手錶樣本資料集,其中包含 100 隻手表的列表,其中包含產品名稱、產品 ID、評論等資訊。

閱讀 Excel Excel表格的簡單方法

讓我們從打開示例Excel表格開始:

>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename = "sample.xlsx" )
>>> workbook.sheetnames
['Sheet 1']

>>>Excel表格=工作簿。活動
>>>Excel表格


>>>Excel表格.title


在上面的示例程式碼中,我們使用load_workbook打開Excel表格,然後使用workbook.sheetnames檢查所有可用的工作表。然後使用workbook.active自動選擇Sheet 1 ,因為它是第一個可用的工作表。這是打開Excel表格的最常見方式。

現在,讓我們看看從Excel表格中檢索資料的程式碼:

>>>Excel表格[ “A1” ]
<單元格'表 1'.A1>

>>>Excel表格[ “A1” ] 。價值
“市場”

>>>Excel表格[ “F10” ] 。價值
“G-Shock 男士灰色運動手錶”

您可以同時檢索實際值和單元格值。要獲取實際值,請使用.value 並獲取單元格,您可以使用.cell():

>>>Excel表格.cell(row = 10 , column = 6 )


>>>Excel表格.cell(行= 10,列= 6)。價值
“G-Shock 男士灰色運動手錶”

從Excel表格導入資料

在本節中,我們將討論如何遍歷資料,以及如何使用 Python 將其轉換為更有用的格式。

讓我們首先從遍歷資料開始。有許多迭代方法完全取決於用戶。

您可以使用行和列的組合對資料進行切片:

>>>Excel表格[ “A1:C2” ]
((, , ),
(<單元格'表 1'.A2>、<單元格'表 1'.B2>、<單元格'表 1'.C2>))

您還可以通過在行和列之間進行迭代來遍歷資料集:

>>> # 獲取 A 列的所有單元格
>>>Excel表格[ "A" ]
(,
<單元格'表 1'.A2>,
...
<單元格'表 1'.A99>,
<單元格'表 1'.A100>)

>>> # 獲取一系列列的所有單元格
>>>Excel表格[ "A:B" ]
((<單元格'表 1'.A1>,
<單元格'表 1'.A2>,
...
<單元格'表 1'.A99>,
<單元格'表 1'.A100>),
(<單元格'表 1'.B1>,
<單元格'表 1'.B2>,
...
<單元格'表 1'.B99>,
<單元格'表 1'.B100>))

>>> # 獲取第 5 行的所有單元格
>>>Excel表格 [ 5 ]
(,
<單元格'表 1'.B5>,
...
<單元格'表 1'.N5>,
<單元格'表 1'.O5>)

>>> # 獲取一系列行的所有單元格
>>>Excel表格[ 5 : 6 ]
((,
<單元格'表 1'.B5>,
...
<單元格'表 1'.N5>,
<單元格'表 1'.O5>),
(<單元格'表 1'.A6>,
<單元格'表 1'.B6>,
...
<單元格'表 1'.N6>,
<單元格'表 1'.O6>))

Python 提供了參數,您可以通過這些參數在.iter_rows()和.iter_cols()等 Python 生成器的幫助下設置迭代限制:

>>> 對於Excel表格中的行。 iter_rows(min_row = 1 ,
... max_row = 2 ,
... min_col = 1 ,
... max_col = 3 ):
... print (row)
(, <單元格'表 1'.B1>, <單元格'表 1'.C1>)
(<單元格'表 1'.A2>、<單元格'表 1'.B2>、<單元格'表 1'.C2>)

>>> 對於Excel表格中的列.iter_cols(min_row = 1 ,
... max_row = 2 ,
... min_col = 1 ,
... max_col = 3 ):
... print (column)
(, <單元格'表 1'.A2>)
(<單元格'表 1'.B1>,<單元格'表 1'.B2>)
(<單元格'表 1'.C1>,<單元格'表 1'.C2>)

您還可以在上面的示例中添加 Boolean values_only並將其設置為True 以獲取單元格的值:

>>> 對於Excel表格中的值.iter_rows(min_row = 1 ,
... max_row = 2 ,
... min_col = 1 ,
... max_col = 3 ,
... values_only = True ):
... print (value)
('市場','customer_id','review_id')
('美國',3653882,'R3O9SGZBVQBV76')

由於我們現在已經完成了資料的迭代,現在讓我們使用 Python 的原始資料結構來操作資料。

考慮一種情況,您希望從示例Excel表格中提取有關產品的資訊,然後將其存儲在字典中。字典的鍵是產品 ID。

將資料轉換為 Python 類

要將資料轉換為Python 資料類,首先讓我們決定要存儲什麼以及如何存儲。

可以從資料中提取的兩個基本要素如下:

什麼是標準化?

讓我們實現這兩個元素:

從資料類導入日期
時間導入資料類

@dataclass
類產品:
id:str
父:str
標題:str
類別:str
@dataclass
類評論:
id:str
customer_id:str
星星:int
標題:str
正文:str
日期:datetime.datetime

下一步是在列和必填字段之間創建映射:

T>>> 用於Excel表格中的值。iter_rows(min_row = 1 ,
... max_row = 1 ,
... values_only = True ):
... print (value)
('marketplace', 'customer_id', 'review_id', 'product_id', ...)

>>> # 或者替代
>>> for cell in sheet[ 1 ]:
... print (cell . value)
marketplace
客戶ID
評論_ID
產品_ID
產品_父
...

最後,讓我們將資料轉換為新結構,將Excel表格中的資料解析為產品列表和評論對象:

from datetime import datetime
from openpyxl import load_workbook
from classes import Product,Review
from mapping import PRODUCT_ID,PRODUCT_PARENT,PRODUCT_TITLE, \
PRODUCT_CATEGORY、REVIEW_DATE、REVIEW_ID、REVIEW_CUSTOMER、\
REVIEW_STARS、REVIEW_HEADLINE、REVIEW_BODY

# 使用 read_only 方法,因為您不會編輯Excel表格
workbook = load_workbook(filename = "watch_sample.xlsx" ,read_only = True )
Excel表格=工作簿。積極的

產品= []
評論= []

# 使用 values_only 因為您只想返回
Excel表格中行的單元格值。iter_rows(min_row = 2 , values_only = True ):
產品=產品(id =行[PRODUCT_ID],
父=行 [PRODUCT_PARENT],
標題=行[PRODUCT_TITLE],
類別=行 [PRODUCT_CATEGORY])
產品。append(product)
# 您需要將Excel表格中的日期解析為日期時間格式
spread_date = row[REVIEW_DATE]
parsed_date =日期時間。strptime(spread_date, "%Y-%m-%d" )

評論=評論(id =行 [REVIEW_ID],
Customer_ID =行[REVIEW_CUSTOMER],
星星=行[REVIEW_STARS],
標題=行[REVIEW_HEADLINE],
正文=行 [REVIEW_BODY],
日期= parsed_date)
評論。附加(審查)

打印(產品[ 0 ])
打印(評論[ 0 ])

執行程式碼後,您將獲得如下所示的輸出:

產品(id = 'A90FALZ1ZC',父級= 937111370,...)
評論(id = 'D3O9OGZVVQBV76',customer_id = 3903882,...)

附加資料

要了解如何附加資料,讓我們將鼠標懸停在第一個示例Excel表格上。我們將打開文檔並向其附加一些資料:

從openpyxl導入load_workbook

# 首先打開Excel表格並選擇主工作表
workbook = load_workbook(filename = "hello_world.xlsx" )
Excel表格=工作簿。積極的

# 將您想要的內容寫入特定的單元格
Excel表格[ "C1" ] = "Manipulating_Data ;)"

# 保存Excel表格
工作簿。保存(文件名= “hello_world_append.xlsx”

如果您打開 Excel 文件,您會注意到附加的Manipulating_Data被添加到相鄰的單元格中。

使用 openpyxl 編寫 Excel Excel表格

Excel表格是一種有助於將資料存儲在特定行和列中的文件。我們可以計算和存儲數值資料,也可以使用公式進行計算。

所以,讓我們從一些簡單的Excel表格開始,了解每一行的含義。

創建我們的第一個簡單的Excel表格

1從openpyxl導入工作簿
2
3 文件名= “first_program.xlsx”
4
5 工作簿=工作簿()
6 Excel表格=工作簿。積極的
7
8 張[ “A1” ]= “第一張”
9 張[ “B1” ]= “程式!”
10
11 工作簿。保存(文件名=文件名)

第 5 行: 為了製作Excel表格,首先,我們必須創建一個 Empty 工作簿來執行進一步的操作。

第 8 行和第 9 行:我們可以根據需要將資料添加到特定單元格。在此示例中,我們可以看到兩個值“first”和“program”已添加到工作表中的特定單元格。

第 11 行:該行顯示了我們完成所有操作後如何保存資料。

基本Excel表格操作

在進入困難的編碼部分之前, 可能需要 python 高級認證才能找到工作,您需要加強構建 塊,例如如何添加和更新值、如何管理行和列、添加過濾器、樣式或公式在Excel表格中。

我們已經解釋了以下程式碼,我們可以通過它向Excel表格添加值:

>>>Excel表格[ “A1” ] = “the_value_we_want_to_add”

還有另一種方法可以向Excel表格添加值:

>>>單元格= sheet[ "A1" ]
>>>單元格


>>>cell。值
“你好”

>>>cell。價值= “嘿”