首頁  >  文章  >  後端開發  >  一篇梳理清楚使用Python根據原始Excel表格批次產生目標Excel表格

一篇梳理清楚使用Python根據原始Excel表格批次產生目標Excel表格

WBOY
WBOY轉載
2023-04-11 19:30:301264瀏覽

大家好,我是Python進階者。

一、前言

前幾天在幫助粉絲解決問題的時候,遇到一個簡單的小需求,這裡拿出來跟大家一起分享,後面再次遇到的時候,可以從這裡得到靈感。

二、需求澄清

粉絲的問題來自實際的需求,下圖是原始數據,需要在1-3處填入另外一個表格中的數據:

一篇梳理清楚使用Python根據原始Excel表格批次產生目標Excel表格

如果是正常操作的話,肯定是點擊進去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中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除