開發人員經常需要將 Pandas 的 DataFrame 匯出到 Excel。Excel 是分享和審查報告的優秀工具。Python 使用 Pandas 使這變得簡單,但使用 Aspose.Cells for Python 可以讓你擁有更多控制權。你可以直接將 DataFrame 轉換為 Excel,通過 CSV,通過 JSON,甚至將多個 DataFrame 匯出到一個文件。在本文中,你將學習如何使用四種方法將 Pandas 的 DataFrame 逐步轉換為 Excel。
為什麼使用 Aspose.Cells 將 Pandas 轉換為 Excel
Pandas 擁有內建的 toexcel()
函數。它適用於基本的匯出,但功能有限。 Aspose.Cells for Python 是開發者使用的 最佳 Python Excel 函式庫,提供完整的 Excel 引擎。它使用高可靠性讓你將 DataFrames 儲存為 Excel。你還可以處理圖表、公式、格式和大型檔案。
這篇文章將向您展示如何使用 Aspose.Cells 以不同方式將 Pandas DataFrame 匯出到 Excel。
在開始之前,請確保您已安裝以下內容:
- 下載 Aspose.Cells for Python 從發布版本或使用 pip 安裝:
pip install aspose-cells-python
- Pandas – 使用 pip 安裝:
pip install pandas
這兩個函式庫將允許您將 Pandas DataFrame 轉換為 Excel 檔案。
方法 1:使用 Aspose.Cells 直接將 DataFrame 轉換為 Excel
最常見的任務是將 Pandas DataFrame 直接導出到 Excel。使用 Aspose.Cells,您可以創建一本工作簿,導入 DataFrame 的值,並將其保存為 Excel 文件。
按照以下步驟將 DataFrame 轉換為 Excel:
- 建立一個範例數據集。
- 初始化一個空的 Excel 工作簿。
- 訪問工作簿中的第一個工作表。
- 將 DataFrame 的列名稱插入到 Excel 單元格中。
- 循環遍歷數據框中的每一行並將值放入單元格中。
- 將最終工作簿導出為 Excel 文件。
以下的程式碼範例顯示如何直接將 Pandas 轉換為 Excel:
import aspose.cells as ac
import pandas as pd
# 第 1 步:創建一個示例 DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)
# 步驟 2:創建一個新的工作簿
wb = ac.Workbook()
# 步驟 3:獲取第一個工作表
worksheet = wb.worksheets[0]
# 步驟 4:獲取儲存格集合
cells = worksheet.cells
# 步驟 5:將 DataFrame 列名稱寫入 Excel
rowindex = 0
colindex = 0
for column in df:
cell = cells.get(rowindex, colindex)
cell.put_value(df[column].name)
colindex += 1
# 步驟 6:將 DataFrame 行寫入 Excel
for index, row in df.iterrows():
rowindex += 1
colindex = 0
cell = cells.get(rowindex, colindex)
cell.put_value(row["name"])
colindex += 1
cell = cells.get(rowindex, colindex)
cell.put_value(row["age"])
colindex += 1
cell = cells.get(rowindex, colindex)
cell.put_value(row["city"])
colindex += 1
# 步驟 7:將資料框儲存為 Excel
wb.save("direct_df_to_excel.xlsx")

直接使用 Aspose.Cells 將 DataFrame 轉換為 Excel。
這段代碼將 Pandas DataFrame 儲存到指定位置的 Excel 文件中。您可以更改路徑以匹配您的系統。
此方法讓您完全控制如何將 Pandas DataFrame 數據寫入 Excel。這是使用 Aspose.Cells 將 DF 轉換為 Excel 的最直接方式。
方法 2:通過 CSV 將 DataFrame 轉換為 Excel
另一個簡單的方法是先將您的 Pandas DataFrame 保存為 CSV,然後使用 Aspose.Cells 將該 CSV 文件轉換為 Excel。當您的過程已經生成 CSV 輸出而您仍然需要一個乾淨的 Excel 文件時,這是非常有用的。
請按照以下步驟通過 CSV 將 DataFrame 轉換為 Excel:
- Build sample data.
- 使用 Pandas 的
tocsv()
方法將 DataFrame 保存為 CSV。 - 打開 CSV 文件作為工作簿。
- 將工作簿導出為
.xlsx
文件。
以下代碼示例顯示如何通過 CSV 將 Pandas 轉換為 Excel:
import aspose.cells as ac
import pandas as pd
# 步驟 1:創建一個示例 DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)
# 步驟 2:將 DataFrame 儲存為 CSV
df.to_csv("temp.csv", index=False)
# 步驟 3:使用 Aspose.Cells 載入 CSV 文件
wb = ac.Workbook("temp.csv")
# 步驟 4:另存為 Excel 檔案
wb.save("df_via_csv.xlsx")
這種方法首先創建一個 CSV 檔案,然後將其轉換為 Excel。它確保即使您的管道已經依賴 CSV 檔案,您的 Pandas 到 Excel 轉換仍然可以正常運作。
當您想要迅速從 CSV 轉換為 Excel,同時保持 Pandas 和 Aspose.Cells 的靈活性時,請使用此方法。
方法 3:透過 JSON 將 DataFrame 轉換為 Excel
許多 API 使用 JSON。您也可以將 JSON 傳遞給 Aspose.Cells 來建立 Excel 工作表。此方法首先將 Pandas DataFrame 轉換為 JSON,然後將該 JSON 載入 Excel 作為表格。它保持您的 pandas 到 Excel 的匯出乾淨且可靠。在您希望對標頭和資料類型進行嚴格控制時,它也會有所幫助。
請遵循以下步驟:
- 建立示範的範例數據。
- 呼叫
df.tojson(orient='records')
以進行轉換。 - 初始化
Workbook()
類別物件並獲取第一個工作表。 - 啟用
arrayastable
以進行正確的表格導入。 - 呼叫
JsonUtility.importdata()
方法以將 JSON 匯入工作表單元格。 - 將最終文件寫入
.xlsx
。
以下代碼範例顯示了如何通過 JSON 將 Pandas 數據框轉換為 Excel:
import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells
# 創建一個範例 pandas DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'San Francisco', 'Los Angeles']}
df = pd.DataFrame(data)
# 將 pandas DataFrame 轉換為 JSON
json_string = df.to_json(orient='records')
workbook = Workbook()
# 獲取第一張工作表
worksheet = workbook.worksheets[0]
# 獲取單元格
cells = worksheet.cells
options = JsonLayoutOptions()
unit = JsonUtility()
# 流程作為表格
options.array_as_table = True
# 將 JSON 數據導入工作表,從第 0 行、第 0 列開始。
unit.import_data(json_string, cells, 0, 0, options)
# 另存為 Excel 檔案
workbook.save("df_via_json.xlsx")
orient='records'
產生一個物件的列表。每個物件將鍵映射到列名。 arrayastable=True
告訴 Aspose.Cells 將數組視為一個具有標題的正確表格。導入器從 A1 開始將值寫入單元格。這為您在 Excel 提供了一個可預測的佈局。
方法 4:將多個 DataFrame 匯出到 Excel 工作表
您可以將多個 Pandas DataFrame 寫入單個 Excel 檔案。每個 DataFrame 將放入各自的工作表。此方法為報告和分組表提供了乾淨的 pandas 到 Excel 的匯出。
請按照以下步驟操作:
- 創建一個函數,將多個 DataFrame 寫入多個工作表。
- 初始化一個新的工作簿。
- 為每個 DataFrame 添加一個工作表,並根據
sheetnames
命名它。 - 將欄位名稱放在第一行。
- 遍歷 DataFrame 元組並寫入單元格值。
- 使用
workbook.save()
方法導出為 XLSX。
以下代碼範例顯示如何將多個 Pandas DataFrame 匯出到 Excel 工作表:
import pandas as pd
from aspose.cells import Workbook, WorksheetCollection, SaveFormat
def write_multiple_dataframes_to_excel(dataframes, sheet_names, output_path):
"""
Write multiple DataFrames to multiple sheets in an Excel file
:param dataframes: List of pandas.DataFrame
:param sheet_names: List of sheet names (same length as dataframes)
:param output_path: Output Excel file path
"""
# 建立一個空白工作簿
workbook = Workbook()
# 可選:如果不需要請移除預設的空白工作表
# workbook.worksheets.removeat(0)
for df, name in zip(dataframes, sheet_names):
# 添加新的工作表
worksheet = workbook.worksheets.add(name)
cells = worksheet.cells
# 寫下標題
for col_idx, col_name in enumerate(df.columns):
cells.get(0, col_idx).put_value(str(col_name))
# Write row data
for row_idx, row in enumerate(df.itertuples(index=False), start=1):
for col_idx, value in enumerate(row):
cells.get(row_idx, col_idx).put_value(value)
# 另存為 Excel 檔案
workbook.save(output_path, SaveFormat.XLSX)
# 創建兩個 DataFrame
df1 = pd.DataFrame({
"Name": ["Alice", "Bob"],
"Age": [25, 30]
})
df2 = pd.DataFrame({
"Product": ["Book", "Pen"],
"Price": [10.5, 1.99]
})
# 寫入 Excel
write_multiple_dataframes_to_excel(
dataframes=[df1, df2],
sheet_names=["People", "Products"],
output_path="MultiDataFrame.xlsx"
)

將多個 Pandas DataFrames 導出到 Excel 工作表,使用 Aspose.Cells。
該函數將每個 DataFrame 與一個工作表名稱配對。它在第 0 行寫入標題,並從第 1 行寫入數據。Aspose.Cells 以強類型寫入單元格的值。最終的 XLSX 文件保持您的表格清晰並準備好共享。
獲取免費許可證
評估 Aspose.Cells for Python via .NET,無限制。請從 license page 申請免費臨時授權。在您的程式碼中應用此授權以移除評估限制。測試每一個功能,包括 DF 到 Excel、圖表、公式和大型文件。
PD to Excel: 免費資源
請利用這些資源來增強您的知識並提高您的理解。
結論
您已經學會了使用 Aspose.Cells for Python 將 Pandas DataFrame 匯出到 Excel 的各種方法。您可以直接保存 DataFrame,使用 CSV,使用 JSON,或將多個 DataFrame 寫入一個檔案。每種方法都簡單、快速且可靠。如果您正在尋找超越 Pandas 的進階 Excel 功能,Aspose.Cells 是正確的選擇。在您的下一個項目中試試它,並完全控制地從 Pandas 轉移到 Excel。
如果您有任何問題,請訪問我們的 free support forum。我們將很高興為您提供幫助。