python可通過openpyxl和python-docx庫高效處理excel和word文檔。1. 使用openpyxl可讀寫excel單元格、修改樣式、遍歷行列,如批量增加銷售額;2. python-docx支持生成word文檔,替換文本、添加段落表格,并注意保留格式;3. 綜合應用pandas讀取excel數據后,遍歷每行并用python-docx生成個性化word文檔,如工資條,顯著提升辦公效率。
在日常辦公中,用Python處理Excel和Word文檔確實能省下不少時間。特別是重復性高、數據量大的任務,自動化操作優勢明顯。比如批量生成報告、整理表格數據這些工作,手動做容易出錯還費時,用Python幾行代碼就能搞定。
用openpyxl輕松處理Excel文件
如果你經常需要處理.xlsx格式的Excel文件,openpyxl是一個非常好用的庫。它支持讀寫單元格、修改樣式、圖表操作等功能。
舉個簡單的例子:你想把某個Excel表中的“銷售額”列都加上1000元作為補貼,可以這樣寫:
立即學習“Python免費學習筆記(深入)”;
from openpyxl import load_workbook wb = load_workbook('銷售數據.xlsx') ws = wb.active for row in ws.iter_rows(min_col=3, max_col=3): # 假設C列是銷售額 cell = row[0] if isinstance(cell.value, (int, float)): cell.value += 1000 wb.save('更新后的銷售數據.xlsx')
幾個實用小技巧:
- 使用iter_rows()或iter_cols()遍歷行列更直觀。
- 修改字體、背景色可以用Font和PatternFill類。
- 保存前記得檢查是否已有同名文件,避免覆蓋。
用python-docx批量生成Word文檔
當你需要根據模板生成大量類似結構的Word文檔(如合同、報告等),python-docx非常合適。它可以添加段落、表格、圖片,還能替換文本內容。
例如,你有一個報告模板,里面有一段寫著“【姓名】同學本次成績為【分數】”,你可以用Python自動替換這兩個占位符:
from docx import Document doc = Document('模板.docx') for para in doc.paragraphs: if '【姓名】' in para.text: para.text = para.text.replace('【姓名】', '張三').replace('【分數】', '92') doc.save('張三的報告.docx')
注意點:
- 替換文本時要小心不要破壞原有格式。
- 如果有多個地方需要替換,建議先提取所有變量,統一處理。
- 表格里的內容也需要單獨遍歷每個單元格來查找替換。
綜合應用:從Excel讀取數據,生成多個Word文檔
這是辦公自動化中最常見的一個場景:根據Excel里的每一行數據,生成對應的Word文檔。
比如,你要給每位員工生成一份工資條,數據都在Excel里,可以這樣做:
- 用pandas讀取Excel數據。
- 遍歷每一行,提取所需字段。
- 用python-docx創建文檔并填充內容。
- 每次循環保存一個新的Word文件。
示例偽代碼如下:
import pandas as pd from docx import Document data = pd.read_excel('員工工資表.xlsx') for index, row in data.iterrows(): doc = Document('工資條模板.docx') for para in doc.paragraphs: para.text = para.text.replace('【姓名】', row['姓名']) .replace('【基本工資】', str(row['基本工資'])) .replace('【獎金】', str(row['獎金'])) doc.save(f"{row['姓名']}_工資條.docx")
這種方式適合批量生成個性化文檔,效率提升非常明顯。
基本上就這些了。Python在處理Excel和Word方面已經非常成熟,工具也很多樣化。雖然一開始可能需要花點時間熟悉API,但一旦掌握,真的能節省大量重復勞動。