Maison >développement back-end >Tutoriel Python >Comment ajouter de nouvelles feuilles à un fichier Excel existant sans écraser dans Pandas ?

Comment ajouter de nouvelles feuilles à un fichier Excel existant sans écraser dans Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 02:49:29375parcourir

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

Comment conserver les feuilles Excel existantes tout en en ajoutant de nouvelles

Dans Pandas, enregistrer de nouvelles feuilles dans un fichier Excel existant présente un défi de préservation le contenu original. Pour résoudre ce problème, nous allons explorer une méthode efficace utilisant 'openpyxl'.

Le problème

Le comportement par défaut de Pandas est d'écraser les feuilles existantes lors de l'ajout de nouvelles. Cela peut entraîner une perte de données lorsque nous avons l'intention d'ajouter de nouvelles données à un fichier existant.

Solution Utiliser 'openpyxl'

'openpyxl' fournit un moyen de gérer les données existantes. classeurs sans écrasement. Voici une description étape par étape :

  1. Charger un classeur existant : Chargez le fichier Excel existant à l'aide de load_workbook().
  2. Créez ExcelWriter : Créez un objet ExcelWriter à l'aide du moteur 'openpyxl' et spécifiez le même chemin que le fichier existant.
  3. Associate Writer and Workbook : Définissez l'attribut book de l'écrivain sur le fichier chargé classeur pour les connecter.
  4. Écrire de nouvelles feuilles : Ajoutez de nouvelles feuilles au classeur existant en appelant la méthode to_excel() sur chaque DataFrame, en fournissant les noms de feuilles appropriés.
  5. Fermez le Writer :Une fois toutes les feuilles ajoutées, fermez ExcelWriter pour enregistrer les modifications.

Exemple :

Voici un exemple code pour illustrer le processus :

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

Dans cet exemple, le code préserve les feuilles existantes dans 'existing.xlsx' et ajoute deux nouvelles feuilles, 'NewSheet1' et 'NewSheet2'.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn