J'essaie d'importer des données à partir d'un dataframe pandas. Pour faciliter la manipulation du côté de l'utilisateur final, j'importe les données dans une table prédéfinie «Table1». Cette table contient déjà des en-têtes, j'essaie donc de ne pas les importer à partir du dataframe.
'''Paste Dataframe into Excel''' wb.sheets['Data'].clear_contents wb.sheets['Data'].range('Table1').value = df wb.sheets['Data'].range('Table1').options(pd.DataFrame, index=False, header=False).expand().value
Cela se traduit actuellement par 2 lignes d'en-têtes dans mon tableau Excel. Est-ce que je manque de documentation sur une meilleure façon d'exporter ces données dans un tableau Excel approprié? Suis-je mal compris la fonction de l'option d'en-tête?
3 Réponses :
Pandas a une méthode pour exporter le dataframe sous forme de table Excel avec beaucoup de paramètres.
your_dataframe.to_excel('document.xlsx')
Consultez la documentation pour plus de détails: pandas.DataFrame.to_excel
J'ai rencontré ce même problème hier, la méthode .options
doit être appliquée lors de l'insertion de la valeur. Faire cela a bien fonctionné pour moi:
wb.sheets['Data'].clear_contents wb.sheets['Data'].range('Table1').options(index=False, header=False).value = df wb.sheets['Data'].range('Table1').options(pd.DataFrame).expand().value
C'est aussi comment cela est montré dans la documentation xlwings.
https://docs.xlwings.org/en/stable/datastructures.html
Celui-ci fonctionnera peut-être mieux. Essayez:
wb.sheets['Data'].clear_contents wb.sheets['Data'].range("A1").options(index=False,header=False).value = df wb.sheets['Data'].range("A1").options(pd.DataFrame).expand()
Les réponses au code uniquement sont déconseillées sur SO. veuillez expliquer pourquoi ce code "fonctionne mieux" et mettre en évidence pourquoi / comment il résout le problème d'OP
Merci! En fait, j'ai rencontré le même problème mais la solution ci-dessus n'a pas fonctionné pour moi. J'ai fait référence à la même documentation ici: xlwings.doc , et il s'avère que si la plage est définie sur "A1", l'en-tête aura disparu.
Faire référence à une réponse comme "ci-dessus" est ambigu ou probablement incorrect. Vous devez ajouter un lien vers tout article que vous souhaitez référencer. L'ordre des réponses change en fonction des paramètres de l'utilisateur, et il change au fil du temps à mesure que les réponses sont ajoutées, supprimées et votées. Vous pouvez edit
pour ajouter des explications dans le corps de votre message. Vous pouvez obtenir le lien d'une réponse via le share
sous le message.
Obtenez-le, merci!
Jetez un œil à la documentation ici: docs.xlwings.org/en/stable/ ... Vous devrez définir les options dans votre 2ème ligne de code, lorsque vous écrivez le dataframe