Maison  >  Article  >  développement back-end  >  Comment puis-je ajouter de nouvelles feuilles à un fichier Excel existant à l'aide de Pandas sans écraser les données existantes ?

Comment puis-je ajouter de nouvelles feuilles à un fichier Excel existant à l'aide de Pandas sans écraser les données existantes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 23:33:29996parcourir

How Can I Add New Sheets to an Existing Excel File Using Pandas Without Overwriting Existing Data?

Enregistrement de nouvelles feuilles dans des fichiers Excel existants avec Pandas

Vous souhaitez stocker des données traitées par Python dans des feuilles de calcul Excel, mais rencontrez des difficultés pour ajouter de nouvelles feuilles aux fichiers existants. Le code fourni soulève des inquiétudes quant à l'écrasement des données originales.

Contexte

Pour créer de nouvelles feuilles Excel et conserver celles existantes, deux options sont disponibles :

xlsxwriter

Le code utilise 'xlsxwriter' comme moteur pour créer et enregistrer un fichier Excel. Cependant, l'ajout de feuilles suivantes au même fichier écrase les précédentes.

openpyxl

Pour surmonter ce problème, « openpyxl » peut être utilisé comme moteur. Il permet d'ajouter de nouvelles feuilles sans perdre les données existantes.

Implémentation avec openpyxl

  1. Chargez le fichier Excel existant à l'aide de 'load_workbook'.
  2. Créez un objet ExcelWriter avec 'openpyxl' comme moteur.
  3. Attribuez le classeur chargé à l'attribut 'book' d'ExcelWriter.
  4. Écrivez les nouveaux DataFrames dans les feuilles souhaitées.
  5. Fermez ExcelWriter pour enregistrer les modifications.
<code class="python">path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book

x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)

df3.to_excel(writer, sheet_name='x3')
df4.to_excel(writer, sheet_name='x4')
writer.close()</code>

Comprendre le code

  • ws.title représente le titre de chaque feuille de calcul dans le classeur chargé.
  • ws représente chaque objet de feuille de calcul.
  • dict est utilisé pour créer un dictionnaire où chaque clé est un titre de feuille et la valeur correspondante est l'objet de la feuille de calcul.

Exemple

L'exemple fourni montre comment générer un fichier Excel, puis ajouter deux autres feuilles sans perdre les données originales.

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