姚姚吹牛皮 發表於 2025-9-8 11:10:00

Excel处理控件Aspose.Cells教程:使用 Python 将 Pandas DataFrame 转换为 Excel

<p><img src="https://image.evget.com/attachment/keditor/image/20250908/094506_4.png"></p>
<p>开发人员经常需要将 Pandas DataFrame 导出到 Excel。Excel 是共享和查看报告的绝佳工具。使用 Python 和 Pandas 可以轻松实现这一点,但使用&nbsp;<strong><u>Aspose.Cells for Python</u></strong>&nbsp;可以为您提供更多控制权。您可以直接将 DataFrame 转换为 Excel,也可以通过 CSV、JSON 等方式,甚至可以将多个 DataFrame 导出到一个文件中。在本文中,您将逐步学习如何借助<strong><u>Aspose.Cells for Python</u></strong>&nbsp;,使用四种方法将 Pandas DataFrame 转换为 Excel。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Aspose.Cells官方试用版免费下载,请联系Aspose官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong><em>加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。</em></strong></span></p>
<h2 id="why-use-asposecells-for-pandas-to-excel">为什么要使用 Aspose.Cells 将 Pandas 转换为 Excel</h2>
<p>Pandas 有一个内置to_excel()函数。它适用于基本导出,但功能有限。<strong><em><u>Aspose.Cells&nbsp;</u></em></strong><strong><em><u>for Python</u>是面向开发人员的</em></strong><strong><em>最佳 Python Excel 库</em></strong><strong><em>之一</em></strong>,它提供了完整的 Excel 引擎。它允许您以高可靠性将 DataFrames 保存到 Excel。您还可以处理图表、公式、格式和大文件。</p>
<p>本文将向您展示如何使用&nbsp;<strong><u>Aspose.Cells</u></strong>&nbsp;以不同方式将 Pandas DataFrame 导出到 Excel。</p>
<p>在开始之前,请确保已安装以下软件:</p>
<ol>
<li>从 releases<strong><u>下载 Aspose.Cells for Python</u></strong>或使用 pip 安装:
<pre class="prettyprint lang-js highlighter-hljs"><code>pip install aspose-cells-python</code></pre>
</li>
<li>Pandas – 使用 pip 安装:
<pre class="prettyprint lang-js highlighter-hljs"><code>pip install pandas</code></pre>
</li>
</ol>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Aspose.Cells官方试用版免费下载,请联系Aspose官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong><em>加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。</em></strong></span></p>
<p>这两个库将允许您将 Pandas DataFrames 转换为 Excel 文件。</p>
<h2 id="method-1-convert-dataframe-to-excel-directly-with-asposecells">方法 1:使用 Aspose.Cells 直接将 DataFrame 转换为 Excel</h2>
<p>最常见的任务是将 Pandas DataFrame 直接导出到 Excel。使用<strong><u>&nbsp;Aspose.Cells</u></strong>,您可以创建工作簿,导入 DataFrame 值,并将其保存为 Excel 文件。</p>
<p>按照以下步骤将 DataFrame 转换为 Excel:</p>
<ol>
<li>构建示例数据集。</li>
<li>初始化一个空的 Excel 工作簿。</li>
<li>访问工作簿中的第一个工作表。</li>
<li>将 DataFrame 列名插入 Excel 单元格。</li>
<li>循环遍历 DataFrame 中的每一行并将值放入单元格中。</li>
<li>将最终工作簿导出为 Excel 文件。</li>
</ol>
<p>以下代码示例显示如何将 Pandas 直接转换为 Excel:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>import aspose.cells as ac
import pandas as pd

# Step 1: Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': ,
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# Step 2: Create a new workbook
wb = ac.Workbook()

# Step 3: Get the first worksheet
worksheet = wb.worksheets

# Step 4: Get the cells collection
cells = worksheet.cells

# Step 5: Write DataFrame column names to Excel
rowindex = 0
colindex = 0
for column in df:
    cell = cells.get(rowindex, colindex)
    cell.put_value(df.name)
    colindex += 1

# Step 6: Write DataFrame rows to 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

# Step 7: Save the DataFrame as Excel
wb.save("direct_df_to_excel.xlsx")</code></pre>
<div><img src="https://image.evget.com/attachment/keditor/image/20250908/094904_5.jpg"></div>
<p style="text-align: center">使用 Aspose.Cells 直接将 DataFrame 转换为 Excel</p>
<p>此代码将 Pandas DataFrame 保存到 Excel 的指定位置。您可以更改路径以匹配您的系统。</p>
<blockquote>
<p>此方法可让您完全控制如何将 Pandas DataFrame 数据写入 Excel。这是使用&nbsp;<strong><u>Aspose.Cells&nbsp;</u></strong>将 DF 转换为 Excel 的最直接方法。</p>
</blockquote>
<h2 id="method-2-convert-dataframe-to-excel-via-csv">方法二:通过 CSV 将 DataFrame 转换为 Excel</h2>
<p>另一个简单的方法是先将 Pandas DataFrame 保存为 CSV 文件,然后使用&nbsp;<strong><u>Aspose.Cells</u></strong>&nbsp;将该 CSV 文件转换为 Excel 文件。当您的流程已经生成 CSV 输出,但仍需要一个干净的 Excel 文件时,这种方法非常有用。</p>
<p>请按照以下步骤通过 CSV 将 DataFrame 转换为 Excel:</p>
<ol>
<li>建立样本数据。</li>
<li>使用to_csv()Pandas 的方法将 DataFrame 保存为 CSV。</li>
<li>将 CSV 作为工作簿打开。</li>
<li>将工作簿导出到.xlsx文件。</li>
</ol>
<p>以下代码示例显示如何通过 CSV 将 Pandas 转换为 Excel:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>import aspose.cells as ac
import pandas as pd

# Step 1: Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': ,
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# Step 2: Save DataFrame as CSV
df.to_csv("temp.csv", index=False)

# Step 3: Load CSV file with Aspose.Cells
wb = ac.Workbook("temp.csv")

# Step 4: Save as Excel file
wb.save("df_via_csv.xlsx")</code></pre>
<p>此方法首先创建一个 CSV 文件,然后将其转换为 Excel。即使您的流程已经依赖于 CSV 文件,它也能确保您的 Pandas 到 Excel 的转换能够正常进行。</p>
<blockquote>
<p>当您想要快速从 CSV 转换为 Excel 同时保持 Pandas 和<strong><u>&nbsp;Aspose.Cells&nbsp;</u></strong>的灵活性时,请使用此方法。</p>
</blockquote>
<h2 id="method-3-convert-dataframe-to-excel-via-json">方法3:通过JSON将DataFrame转换为Excel</h2>
<p>许多 API 都使用 JSON。您也可以将 JSON 传递给<strong><u>&nbsp;Aspose.Cells&nbsp;</u></strong>来构建 Excel 工作表。此方法首先将 Pandas DataFrame 转换为 JSON,然后将该 JSON 作为表格加载到 Excel 中。它能让您的 Pandas 到 Excel 导出数据干净可靠。当您需要严格控制标题和数据类型时,它也非常有用。</p>
<p>请按照以下步骤操作:</p>
<ol>
<li>为演示构建示例数据。</li>
<li>调用df.to_json(orient='records')进行转换。</li>
<li>初始化Workbook()类对象并获取第一个工作表。</li>
<li>启用array_as_table正确的表格导入。</li>
<li>调用该JsonUtility.import_data()方法将 JSON 导入工作表单元格。</li>
<li>将最终文件写入.xlsx。</li>
</ol>
<p>以下代码示例显示如何通过 JSON 将 Pandas DF 转换为 Excel:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells

# Create a sample pandas DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
      'Age': ,
      'City': ['New York', 'San Francisco', 'Los Angeles']}
             
df = pd.DataFrame(data)

# Convert pandas DataFrame to JSON
json_string = df.to_json(orient='records')

workbook = Workbook()

# Get the first worksheet
worksheet = workbook.worksheets

# Get the cells
cells = worksheet.cells

options = JsonLayoutOptions()
unit = JsonUtility()

# Processes as table
options.array_as_table = True

# Import JSON data into the worksheet starting at row 0, column 0
unit.import_data(json_string, cells, 0, 0, options)

# Save as Excel file
workbook.save("df_via_json.xlsx")</code></pre>
<p>这orient='records'会生成一个对象列表。每个对象都会将键映射到列名。array_as_table=True它会指示 Aspose.Cells 将数组视为带有标题的正确表格。导入器会将值写入从 A1 开始的单元格。这会在 Excel 中为您提供可预测的布局。</p>
<h2 id="method-4-export-multiple-dataframes-to-excel-sheets">方法 4:将多个 DataFrame 导出到 Excel 表</h2>
<p>您可以将多个 Pandas DataFrame 写入单个 Excel 文件。每个 DataFrame 都会保存到其自己的工作表 (sheet)。此方法可让您将 Pandas 数据导出到 Excel,方便生成报告和分组表。</p>
<p>请按照以下步骤操作:</p>
<ol>
<li>创建一个将许多 DataFrame 写入多张工作表的函数。</li>
<li>初始化一个新的工作簿。</li>
<li>为每个 DataFrame 添加一个工作表并将其命名为sheet_names。</li>
<li>将列名放在第一行。</li>
<li>循环遍历 DataFrame 元组并写入单元格值。</li>
<li>使用该方法导出为XLSX&nbsp;workbook.save()。</li>
</ol>
<p>以下代码示例显示如何将多个 Pandas DataFrame 导出到 Excel 表:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>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
    """
    # Create a blank workbook
    workbook = Workbook()

    # Optional: remove the default blank sheet if you do not need it
    # workbook.worksheets.remove_at(0)

    for df, name in zip(dataframes, sheet_names):
      # Add a new worksheet
      worksheet = workbook.worksheets.add(name)
      cells = worksheet.cells

      # Write column headers
      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)

    # Save as Excel file
    workbook.save(output_path, SaveFormat.XLSX)

# Create two DataFrames
df1 = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age":
})

df2 = pd.DataFrame({
    "Product": ["Book", "Pen"],
    "Price":
})

# Write to Excel
write_multiple_dataframes_to_excel(
    dataframes=,
    sheet_names=["People", "Products"],
    output_path="MultiDataFrame.xlsx"
)</code></pre>
<div><img src="https://image.evget.com/attachment/keditor/image/20250908/095119_2.jpg"></div>
<p style="text-align: center">使用 Aspose.Cells 将多个 Pandas DataFrames 导出到 Excel 表</p>
<p>该函数将每个 DataFrame 与工作表名称配对。它会在第 0 行写入标题,并从第 1 行写入数据。<strong><u>Aspose.Cells</u></strong>&nbsp;会将值写入具有强类型属性的单元格。最终生成的 XLSX 文件将保持表格清晰,方便共享。</p>
<h2 id="conclusion">结论</h2>
<p>您已经学习了使用&nbsp;<strong><u>Aspose.Cells for Python</u></strong>&nbsp;将 Pandas DataFrame 导出到 Excel 的多种方法。您可以直接保存 DataFrame,使用 CSV 格式,使用 JSON 格式,或者将多个 DataFrame 写入一个文件。每种方法都简单、快速且可靠。如果您正在寻找超越 Pandas 的高级 Excel 功能,<strong><u>Aspose.Cells</u></strong>&nbsp;是您的理想之选。不妨在您的下一个项目中尝试一下,从 Pandas 完全控制迁移到 Excel。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Aspose.Cells官方试用版免费下载,请联系Aspose官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong><em>加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。</em></strong></span></p><br><br>
来源:https://www.cnblogs.com/software-Development/p/19079345
頁: [1]
查看完整版本: Excel处理控件Aspose.Cells教程:使用 Python 将 Pandas DataFrame 转换为 Excel