Home >Backend Development >Python Tutorial >How to Add New Sheets to an Existing Excel File Without Overwriting in Pandas?

How to Add New Sheets to an Existing Excel File Without Overwriting in Pandas?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 02:49:29332browse

How to Add New Sheets to an Existing Excel File Without Overwriting in Pandas?

How to Preserve Existing Excel Sheets While Adding New Ones

In Pandas, saving new sheets to an existing Excel file presents a challenge of preserving the original content. To resolve this, we will explore an effective method using 'openpyxl'.

The Issue

The default behavior of Pandas is to overwrite existing sheets when adding new ones. This can lead to data loss when we intend to append new data to an existing file.

Solution Using 'openpyxl'

'openpyxl' provides a way to handle existing workbooks without overwriting. Here's a step-by-step breakdown:

  1. Load Existing Workbook: Load the existing Excel file using load_workbook().
  2. Create ExcelWriter: Create an ExcelWriter object using the engine 'openpyxl' and specify the same path as the existing file.
  3. Associate Writer and Workbook: Set the book attribute of the writer to the loaded workbook to connect them.
  4. Write New Sheets: Append new sheets to the existing workbook by calling to_excel() method on each DataFrame, providing appropriate sheet names.
  5. Close the Writer: Once all the sheets are added, close the ExcelWriter to save the changes.

Example:

Here's an example code to illustrate the process:

<code class="python">import pandas as pd
from openpyxl import load_workbook

# Load existing workbook
book = load_workbook('existing.xlsx')

# Create ExcelWriter and associate it with the workbook
writer = pd.ExcelWriter('existing.xlsx', engine='openpyxl')
writer.book = book

# Append new sheets
new_df1 = pd.DataFrame({'x': [1, 2, 3]})
new_df2 = pd.DataFrame({'y': [4, 5, 6]})

new_df1.to_excel(writer, sheet_name='NewSheet1')
new_df2.to_excel(writer, sheet_name='NewSheet2')

# Save changes
writer.close()</code>

In this example, the code preserves the existing sheets in 'existing.xlsx' and adds two new sheets, 'NewSheet1' and 'NewSheet2'.

The above is the detailed content of How to Add New Sheets to an Existing Excel File Without Overwriting in Pandas?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn