当前位置: 首页 > 科技观察

一篇明明用Python从原始Excel表格批量生成目标Excel表格的文章

时间:2023-03-14 14:03:07 科技观察

大家好,我是Python进阶。一、前言前几天在帮粉丝解决问题的时候,遇到一个简单的小需求。我将在这里与您分享。以后再见面的时候,都能从中得到启发。2.需求说明粉丝的问题来源于实际需求。下图是原始数据,另外一张表的数据需要填写1-3:如果是正常操作,必须点击进入Excel文件,然后每个单元复制,粘贴到一个新文件,保存,重命名。这当然是可以的,但是如果有上百个文件夹需要复制呢?成千上万的文件呢?这肯定会花费大量的时间和精力。估计一天也不一定能完成。这里使用Python进行批量实现!3.实现过程这里给大家提供一个可行的代码。这个想法也很简单。openpyxl库实现了它。代码如下:importopenpyxlworkbook1=openpyxl.load_workbook("template.xlsx")worksheet1=workbook1.worksheets[0]print(worksheet1['C4'].value)#金额print(worksheet1['D4'].value)#Companyprint(worksheet1['F4'].value)#Numberworkbook2=openpyxl.load_workbook("Order.xlsx")worksheet2=workbook2[0]print(worksheet2['C3'].value)#cityprint(worksheet2['D3'].value)#numberprint(worksheet2['CU3'].value)#amountprint(worksheet2['DM3'].value)#Companyprint(f"处理单:{worksheet2['C3'].value}...")worksheet1['C4'].value=worksheet2['CU3'].valueworksheet1['D4'].value=f"{worksheet2['DM3'].value}分支"worksheet1['F4'].value=worksheet2['D3'].valuenew_file_name=f"({worksheet2['C3'].value}{worksheet2['D3'].value})"workbook1.save(new_file_name+'.xlsx')print(f"Order:{worksheet2['C3'].value}处理完成")代码运行后,可以实现Excel文件中对应数据的替换。但这里只是单个文件替换。如果要批量替换,需要加一个for循环,如下图:foriinrange(len(worksheet.row)):print(f"isinrow{i},processingorder:{worksheet2[f'C{i}'].value}...")worksheet1['C4'].value=worksheet2[f'CU{i}'].valueworksheet1['D4'].value=f"{worksheet2[f'DM{i}'].value}branch"worksheet1['F4'].value=worksheet2[f'D{i}'].valuenew_file_name=f"({worksheet2[f'C{i}'.value}{worksheet2[f'D{i}'].value})"workbook1.save(new_file_name+'.xlsx')time.sleep(3)print(f"Order:{worksheet2[f'C{i}'].value}处理完成")3.总结大家好,我是皮皮。本文主要盘点一个Python办公自动化的实际案例。本案例可应用于实际工作中的文件处理。大家也可以稍微改进一下,在实际工作中使用。通过这个案例,你应该学到了很多东西。我相信应该有其他更好的方法。欢迎在留言区留言。