實戰(zhàn)!「Excel 拆分」
你好,我是悅創(chuàng)。上面一篇,我在 Excel 合并 中留下一個 Excel 拆分的實戰(zhàn)問題,接下來我們來解決一下。
「我來重新分享一下題目:」
「批量拆分。」 「問題:」 假設(shè)你是公司的財務(wù)人員,你需要使用 Excel 對員工工資進(jìn)行核算,之后再打印出來。但是公司要求員工薪水保密,所以每個員工的工資需要拆分成一個獨立的文件,最后還需要打印出來。
如何實現(xiàn) Excel 拆分?
對于批量操作 Excel,還有一種情況是批量拆分。比如很多公司會用 Excel 記錄和統(tǒng)計員工的薪水、記錄貨物信息、記錄客戶情況等數(shù)據(jù)。這些數(shù)據(jù)越來越多之后,文件會越來越大,打開文件和查找速度就會變得很慢,最后只好按照某些列進(jìn)行 Excel 的拆分。
接下來,我就為你講解一下如何進(jìn)行 Excel 的批量拆分。讓我們來看一個工資條的案例。
例如我在一個 Excel 中存放了工資信息,需要把第一行的表頭和員工工資拆分成一個以員工名字命名的 Excel 文件。我來帶你看下具體該怎么操作:
| 員工編號 | 姓名 | 出勤 | 工資 | 獎金 | 職務(wù)工資 | 全勤獎 | 實發(fā)工資 |
|---|---|---|---|---|---|---|---|
| 1001 | 韓梅梅 | 30 | 2000 | 1000 | 1000 | 100 | 4100 |
| 1002 | 李雷 | 30 | 2500 | 1000 | 500 | 100 | 4100 |
會發(fā)現(xiàn),逐行讀取可以使用循環(huán)功能批量操作,對每一行的內(nèi)容處理,如果能使用 Python 進(jìn)行自動化的話,一個 Excel 拆分的工作就全部能使用 Python 自動化實現(xiàn)了。所以,我打算設(shè)計一個 for 循環(huán)語句用于遍歷所有的行,在 for 循環(huán)語句當(dāng)中實現(xiàn)對每一行具體內(nèi)容的處理。
我把文件拆分的關(guān)鍵代碼寫了出來,你可以參考一下:
for line in range(1,employee_number):
content = table.row_values(rowx=line, start_colx=0, end_colx=None)
# 將表頭和員工數(shù)量重新組成一個新的文件
new_content = []
# 增加表頭到要寫入的內(nèi)容中
new_content.append(salary_header)
# 增加員工工資到要寫入的內(nèi)容中
new_content.append(content)
# 調(diào)用自定義函數(shù)write_to_file()寫入新的文件
write_to_file(filename = content[1], cnt = new_content)
在這段代碼的第一行,我使用了一個 range 函數(shù),它會生成從 1 到員工總數(shù)的數(shù)字范圍。你可能會問,為什么沒有直接寫出 Excel 中總員工的數(shù)量,而是使用 employee_number 這樣一個變量呢?
這是因為,如果直接寫出員工數(shù)量,一旦遇到員工入職或員工離職等情況,你就需要根據(jù) Excel 中的行數(shù)重新編寫 Python 代碼,而我現(xiàn)在使用的方式是每次打開 Excel 文件,會自動統(tǒng)計員工的數(shù)量(即行數(shù)),這種編寫代碼的方式能夠讓你的程序有更好的擴展性,一般這種方式用于處理文件內(nèi)容經(jīng)常變動的情況。
