Maison  >  Article  >  développement back-end  >  Un article clair sur l'utilisation de Python pour générer par lots des tableaux Excel cibles basés sur des tableaux Excel originaux

Un article clair sur l'utilisation de Python pour générer par lots des tableaux Excel cibles basés sur des tableaux Excel originaux

WBOY
WBOYavant
2023-04-11 19:30:301264parcourir

Bonjour à tous, je suis un utilisateur avancé de Python.

1. Avant-propos

Il y a quelques jours, alors que j'aidais les fans à résoudre des problèmes, je suis tombé sur une simple petite demande que je partagerai avec vous ici. Lorsque vous la rencontrerez à nouveau plus tard, vous pourrez vous inspirer d'ici.

2. Clarification de la demande

Les questions des fans proviennent de besoins réels. L'image ci-dessous est les données originales. Vous devez remplir les données dans un autre tableau à 1-3 :

Un article clair sur lutilisation de Python pour générer par lots des tableaux Excel cibles basés sur des tableaux Excel originaux

S'il s'agit d'un fonctionnement normal. , il faut cliquer dans le fichier Excel, puis copier chaque cellule, puis coller dans un nouveau fichier, puis enregistrer, puis renommer.

C'est tout à fait possible, mais que se passe-t-il s'il y a des centaines de dossiers à copier ? Qu’en est-il des milliers de fichiers ? Cela demandera certainement beaucoup de temps et d’énergie. On estime que cela ne sera peut-être pas terminé en un jour.

Ici, nous utilisons Python pour l'implémentation par lots !

3. Processus d'implémentation

Voici un code réalisable pour vous. L'idée est également très simple. La bibliothèque openpyxl l'implémente comme suit :

import openpyxl

workbook1 = openpyxl.load_workbook("模板.xlsx")
worksheet1 = workbook1.worksheets[0]
print(worksheet1['C4'].value)# 金额
print(worksheet1['D4'].value)# 公司
print(worksheet1['F4'].value)# 编号

workbook2 = openpyxl.load_workbook("订单.xlsx")
worksheet2 = workbook2[0]
print(worksheet2['C3'].value)# 城市
print(worksheet2['D3'].value)# 编号
print(worksheet2['CU3'].value)# 金额
print(worksheet2['DM3'].value)# 公司

print(f"正在处理订单:{worksheet2['C3'].value}...")
worksheet1['C4'].value = worksheet2['CU3'].value
worksheet1['D4'].value = f"{worksheet2['DM3'].value}分公司"
worksheet1['F4'].value = worksheet2['D3'].value
new_file_name = f"({worksheet2['C3'].value} {worksheet2['D3'].value})"
workbook1.save(new_file_name + '.xlsx')
print(f"订单:{worksheet2['C3'].value}处理完成")

Une fois le code exécuté, le remplacement des données correspondant. dans le fichier Excel peut être réalisé. Mais il ne s'agit que du remplacement d'un seul fichier.

Si vous souhaitez remplacer par lots, vous devez ajouter une boucle for, comme indiqué ci-dessous :

for i in range(len(worksheet.row)):
print(f"正在第{i}行,处理订单:{worksheet2[f'C{i}'].value}...")
worksheet1['C4'].value = worksheet2[f'CU{i}'].value
worksheet1['D4'].value = f"{worksheet2[f'DM{i}'].value}分公司"
worksheet1['F4'].value = worksheet2[f'D{i}'].value
new_file_name = f"({worksheet2[f'C{i}'].value} {worksheet2[f'D{i}'].value})"
workbook1.save(new_file_name + '.xlsx')
time.sleep(3)
print(f"订单:{worksheet2[f'C{i}'].value}处理完成")

3. Résumé

Bonjour à tous, je m'appelle Pippi. Cet article passe principalement en revue un cas pratique de travail de bureautique automatisé Python. Ce cas peut être appliqué au traitement de fichiers dans un travail réel. Vous pouvez également l'améliorer légèrement et l'utiliser dans votre propre travail réel, et tirer des conclusions à partir d'un exemple. Grâce à ce cas, vous auriez dû apprendre beaucoup. Je pense qu'il devrait y avoir d'autres meilleures méthodes. Vous êtes invités à laisser un message dans la zone de message.

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