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 Le code ci-dessous doit créer une feuille de calcul à index 0 avec nom openpyxl code> 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 CODE> Supporte la version MS Office 2010, mais j'utilise Office365 Pro.
Pourriez-vous fournir une aide ou une suggestion?
feuille code> et l'autre avec nom que je fournis. Si je fournis index 0 Il n'y a qu'une seule feuille avec nom
Stade1 code> créé. P>
Test code>. < / p>
3 Réponses :
créera un xlsx fichier avec une seule feuille de calcul appelée "mon nom de feuille".
Lorsque vous appelez 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 openpyxl code> crée une seule feuille appelée "feuille" lorsque vous appelez d'abord le classeur
() code> 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
create_sheet code> avec index 0, vous devez simplement insérer une nouvelle feuille avant cette feuille d'origine. P>
titre code>. P> p>
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) code>. 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 code>, vous pouvez voir que
wb.worksheets code> est vide. Si vous appelez simplement
wb.save code> Créera une seule feuille appelée
la feuille code> de sorte qu'elle fonctionne .. mais si vous exécutez
wb.create_sheet ("ma feuille") code> 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 code>. 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".
Vous pouvez obtenir cette feuille et supprimer comme ceci: p>
feuille = wb1.get_sheet_by_name ("feuille") code> p>
wb1.remove_sheet (feuille) code> p>
Vous pouvez supprimer cette feuille via: