Maison  >  Article  >  développement back-end  >  Comment ajouter de nouvelles feuilles à des fichiers Excel existants à l'aide de Pandas ?

Comment ajouter de nouvelles feuilles à des fichiers Excel existants à l'aide de Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 11:04:30195parcourir

How to Append New Sheets to Existing Excel Files Using Pandas?

Ajout de nouvelles feuilles à des fichiers Excel existants avec Pandas

Pandas fournit une interface pratique pour travailler avec des fichiers Excel. Cependant, lors de l’enregistrement de nouvelles feuilles dans un fichier existant, les utilisateurs rencontrent souvent des difficultés. Cet article aborde le problème et propose une solution complète.

Code existant :

Le code fourni enregistre deux DataFrames sur deux feuilles mais ne parvient pas à ajouter d'autres feuilles sans perdre le données originales en raison de la fermeture de l'objet ExcelWriter.

Meilleure approche :

Le flux de travail idéal consiste à créer un fichier Excel, à enregistrer certaines données, à fermer ExcelWriter, puis à rouvrir pour ajouter plus de feuilles. Cette approche garantit la préservation des données.

Intégration Openpyxl :

Pour ajouter des feuilles sans perdre de données, Pandas peut utiliser Openpyxl. Openpyxl permet la manipulation directe de fichiers Excel. En chargeant le fichier existant à l'aide de load_workbook et en le définissant comme étant le livre d'ExcelWriter, nous pouvons ajouter de nouvelles feuilles sans affecter celles existantes.

Exemple complet :

Voici un exemple complet :

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

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

# Generate initial data
x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)

x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)

# Write initial sheets
writer = pd.ExcelWriter(path, engine='xlsxwriter')
df1.to_excel(writer, sheet_name='x1')
df2.to_excel(writer, sheet_name='x2')
writer.close()

# Open existing file and add new sheets
book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book

# Generate new data
x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

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

# Append new sheets
df3.to_excel(writer, sheet_name='x3')
df4.to_excel(writer, sheet_name='x4')

writer.close()</code>

Ce code génère d'abord deux feuilles et ferme l'ExcelWriter. Ensuite, il rouvre le fichier et utilise Openpyxl pour ajouter deux feuilles supplémentaires, en préservant les données d'origine.

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