大家好,我是Python進階者。
前幾天在幫助粉絲解決問題的時候,遇到一個簡單的小需求,這裡拿出來跟大家一起分享,後面再次遇到的時候,可以從這裡得到靈感。
粉絲的問題來自實際的需求,下圖是原始數據,需要在1-3處填入另外一個表格中的數據:
如果是正常操作的話,肯定是點擊進去Excel文件,然後每個儲存格複製,然後貼上到新文件,然後儲存,之後重新命名。
這樣做一定是可以,但是當有上百個資料夾需要複製呢?上千個文件呢?肯定就需要消耗大量的時間和精力了。估計一天都不一定完成的了。
這裡使用Python進行批次實作!
這裡提供大家一個可行的程式碼,想法也很簡單,openpyxl函式庫進行實現,程式碼如下:
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}处理完成")
程式碼運作之後,就可以實現該Excel檔案中對應的資料替換了。不過這裡只是單一文件的替換。
如果想要批量的進行替換的話,則需要加入for循環,如下所示:
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}处理完成")
大家好,我是皮皮。這篇文章主要盤點一個Python自動化辦公室的實用案例,這個案例可以適用於實際工作中文件處理,大家也可以稍微改進下,用於自己的實際工作中去,舉一反三。透過這個案例,大家應該學到了很多,我相信應該還有其他更好的方法,歡迎大家留言區留言。
以上是一篇梳理清楚使用Python根據原始Excel表格批次產生目標Excel表格的詳細內容。更多資訊請關注PHP中文網其他相關文章!