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.
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.
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
# 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 !
# 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
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!