Maison  >  Article  >  développement back-end  >  Apprenez étape par étape à utiliser Python pour ajouter par lots une nouvelle colonne dans Excel, et le contenu est le nom du tableau Excel

Apprenez étape par étape à utiliser Python pour ajouter par lots une nouvelle colonne dans Excel, et le contenu est le nom du tableau Excel

PHPz
PHPzavant
2023-04-11 19:34:132810parcourir

[[441492]]

Avant-propos

Il y a quelques jours dans le groupe d'échange Platinum, un fan nommé [? ??] a posé une question sur le bureau automatisé Python dans le groupe d'échange Python À première vue. , cela semble très simple, mais en fait c'est effectivement difficile. Les questions sont comme le montre l'image ci-dessous.

2. Idée de solution

Si vous suivez l'idée conventionnelle, ouvrez d'abord un tableau Excel, puis ajoutez le nom du tableau correspondant dans la dernière colonne du tableau S'il s'agit simplement d'un tableau avec un seul. rangée du contenu du tableau, faites ceci, Trois fois cinq divisé par deux suffisent. Mais si vous rencontrez de nombreuses tables, il sera très fatiguant de continuer à les traiter une par une.

Mais ici, je vais vous présenter une méthode d'utilisation de Python pour automatiser le travail de bureau afin de vous aider à résoudre le problème et de garantir qu'il n'y aura pas d'erreurs. La bataille peut être terminée en quelques secondes environ.

En fait, [? ? ??] a également essayé d'utiliser Python pour le résoudre, mais a rencontré quelques problèmes. Bien que le fichier Excel ait été créé, l'écriture ultérieure du nom de colonne a échoué et il a finalement dû fusionner les tableaux Excel. sont en fait deux exigences ici.

3. Solution

Voici le code fourni par le patron de [?(This is the back of the moon]). L'idée générale est en fait la même, mais la méthode d'implémentation est d'utiliser un programme Python pour implémentez-le. , l'efficacité est très différente. Regardons le code directement

1 Le code 1

# coding: utf-8 
# 给每个excel中的sheet增加一列,值为excel名.xlsx 
from pathlib import Path 
import pandas as pd 
path = Path(r'E:PythonCrawlerpython_crawler-masterMergeExcelSheetfile777') 
excel_list = [(i.stem, pd.concat(pd.read_excel(i, sheet_name=None))) for i in path.glob("*.xls*")] 
data_list = [] 
for name, data in excel_list: 
    print(name) 
    print(data) 
    data['表名'] = name 
    data_list.append(data) 
result = pd.concat(data_list, ignore_index=True) 
result.to_excel(path.joinpath('给每个excel中的sheet增加一列,值为excel名.xlsx'), index=False, encoding='utf-8') 
print('添加和合并完成!')

i.stem signifie obtenir le nom du fichier, à l'exclusion du nœud parent et du suffixe, par exemple D:/. Desktop/ test.txt, i.stem est test !

Deuxièmement, Code 2

# coding: utf-8 
# 给每个excel中的sheet增加一列,值为excel名-sheet名.xlsx 
from pathlib import Path 
import pandas as pd 
path = Path(r'E:PythonCrawlerpython_crawler-masterMergeExcelSheetfile777') 
excel_list = [(i.stem, pd.concat(pd.read_excel(i, sheet_name=None))) for i in path.glob("*.xls*")] 
data_list = [] 
for name, data in excel_list: 
    print(name) 
    print(data) 
    data['表名'] = name 
    data.reset_index(level=0, inplace=True)  # 重置level_0索引 
    data_list.append(data) 
result = pd.concat(data_list, ignore_index=True) 
result['表名'] = result['表名'] + '-' + result['level_0']  # 更改列值 
del result['level_0']  # 删除多余列 
result.to_excel(path.joinpath('给每个excel中的sheet增加一列,值为excel名-sheet名.xlsx'), index=False, encoding='utf-8') 
print('添加和合并完成!')

Ce code est en fait similaire au Code 1, sauf que les noms de colonnes sont légèrement différents, car les noms de feuilles dans les trois excellents dans l'exemple. De même, utilisez simplement le nom de la table comme préfixe, nom de la table - nom de la feuille

Une fois le code exécuté, le fichier Excel correspondant sera automatiquement généré dans le répertoire du code, comme indiqué dans la figure ci-dessous

. Dans le tableau Excel, il y a également des noms de colonnes correspondant aux noms de tableaux, et la fonction de fusion de tous les tableaux est également implémentée, comme le montre la figure ci-dessous

Si vous êtes intéressé par la fusion des connaissances Excel, vous pouvez cliquer sur cet article. Étude suivante : Inventaire de 4 façons d'utiliser Python pour fusionner par lots toutes les données de feuille dans des fichiers Excel dans tous les sous-dossiers du même dossier, plein d'informations utiles

4. Résumé

Je suis un utilisateur avancé de Python ! . Cet article est basé sur des fans. Les questions sur le bureau automatisé Python ont donné une solution utilisant les bases de Python + le traitement des fichiers pandas, qui répondait pleinement aux exigences des fans et leur faisait gagner beaucoup de temps

.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer