-1
votes

Pourquoi OpenPyxl crée une feuille de calcul avec nom "feuille1"?

openpyxl crée une feuille de calcul avec nom "feuille1" par défaut Même si je spécifie que la feuille doit être créée avec index 0. Je suis sûr que ce n'est pas une question en double. Documentation dit OpenPyXL Supporte la version MS Office 2010, mais j'utilise Office365 Pro. Pourriez-vous fournir une aide ou une suggestion?

Veuillez noter que le code autonome fonctionne bien pour moi, mais lorsque le même code est intégré à un autre code, je ressens le problème décrit ci-dessous. J'ai essayé beaucoup de choses. Depuis que je suis nouveau à Python, on dirait qu'il y a quelque chose dont je ne suis pas au courant. Si je spécifie Index 1, deux feuilles de calcul créées: une avec nom feuille et l'autre avec nom que je fournis. Si je fournis index 0 Il n'y a qu'une seule feuille avec nom Stade1 créé.

Le code ci-dessous doit créer une feuille de calcul à index 0 avec nom Test . < / p> xxx


0 commentaires

3 Réponses :


4
votes

openpyxl crée une seule feuille appelée "feuille" lorsque vous appelez d'abord le classeur () fonction. C'est juste une sorte de bizarre ennuyeuse du module. La manière la plus propre que j'ai trouvée à traiter est de renommer que cette feuille au lieu de tenter de faire une nouvelle xxx

créera un xlsx fichier avec une seule feuille de calcul appelée "mon nom de feuille". Lorsque vous appelez create_sheet avec index 0, vous devez simplement insérer une nouvelle feuille avant cette feuille d'origine. xxx

créera un XLSX où la première feuille est appelé "autre nom" et la deuxième feuille s'appelle "mon nom de feuille". Si vous traitez avec un classeur de feuilles, il est plus facile de simplement utiliser titre .


5 commentaires

Voyant comme vous ne pouvez pas avoir de classeur sans au moins une feuille de calcul que je pense que c'est essentiel plutôt qu'un «bizarrerie».


Bien sûr, vous pouvez .. workbook (write_only = true) . L'épargne sans créer que l'on produira des erreurs horribles bien sûr ..


Vous ne pouvez pas enregistrer un classeur sans une feuille de calcul.


Eh bien, si vous faites un classeur Write_only à wb , vous pouvez voir que wb.worksheets est vide. Si vous appelez simplement wb.save Créera une seule feuille appelée la feuille de sorte qu'elle fonctionne .. mais si vous exécutez wb.create_sheet ("ma feuille") Il créera une seule feuille avec votre nom. . Sans la bizarrerie d'avoir une feuille aléatoire appelée "feuille" avant même que vous n'ayez même pas exécuté wb.active . C'est le comportement que l'OP attendait parce que cela a du sens (à mon avis).


En d'autres termes: votre commentaire précédent n'est pas correct. Si vous créez un nouveau classeur dans Excel ou une autre application, vous obtenez également une "feuille aléatoire".



0
votes

Vous pouvez obtenir cette feuille et supprimer comme ceci:

feuille = wb1.get_sheet_by_name ("feuille")

wb1.remove_sheet (feuille)


0 commentaires

2
votes

Vous pouvez supprimer cette feuille via: xxx


0 commentaires