Python零基础到精通教程,办公自动化(Excel/Word/PDF)

张开发
2026/6/15 19:25:44 15 分钟阅读
Python零基础到精通教程,办公自动化(Excel/Word/PDF)
Python 办公自动化能批量处理文件、替代重复手动操作大幅提升办公效率覆盖数据统计、报表生成、文档批量修改、PDF 格式转换等高频办公场景。本文使用最主流、最稳定的库Excelopenpyxl读写.xlsx、pandas数据处理Wordpython-docx读写.docxPDFPyPDF2合并 / 拆分 / 提取、pdfplumber精准提取文本一、环境准备一键安装打开命令提示符 / 终端执行以下命令安装所有依赖库pip install openpyxl pandas python-docx PyPDF2 pdfplumber二、Excel 自动化最常用办公场景核心使用场景批量读取 Excel 数据统计 / 筛选 / 计算自动生成报表、写入数据、设置样式合并多个 Excel 文件、拆分工作表批量修改 Excel 内容1. 读取 Excel 数据pandas 极简版import pandas as pd # 读取Excel文件支持.xlsx和.xls df pd.read_excel(员工工资表.xlsx, sheet_nameSheet1) # 查看数据基本信息 print(表格前5行数据) print(df.head()) print(\n数据总行数/列数, df.shape) # 筛选数据筛选工资大于8000的员工 high_salary df[df[工资] 8000] print(\n高薪员工) print(high_salary) # 统计数据计算平均工资 print(\n平均工资, df[工资].mean())2. 新建并写入 Excelopenpyxl 样式版from openpyxl import Workbook from openpyxl.styles import Font, Alignment # 创建工作簿 wb Workbook() ws wb.active # 获取活动工作表 ws.title 销售报表 # 写入表头 headers [日期, 产品, 销量, 销售额] ws.append(headers) # 批量写入数据 data [ [2025-01-01, 笔记本, 20, 10000], [2025-01-02, 鼠标, 50, 5000], [2025-01-03, 键盘, 30, 9000] ] for row in data: ws.append(row) # 设置表头样式加粗、居中 header_font Font(boldTrue, colorFFFFFF) for cell in ws[1]: cell.font header_font cell.alignment Alignment(horizontalcenter) cell.fill Font(color0000FF) # 蓝色背景 # 保存文件 wb.save(2025年1月销售报表.xlsx) print(Excel报表生成完成)3. 批量合并多个 Excel 文件import pandas as pd import os # 存放所有Excel的文件夹路径 folder_path ./分公司报表 all_data [] # 遍历文件夹下所有.xlsx文件 for file in os.listdir(folder_path): if file.endswith(.xlsx): file_path os.path.join(folder_path, file) df pd.read_excel(file_path) all_data.append(df) # 合并所有数据并保存 result pd.concat(all_data, ignore_indexTrue) result.to_excel(全公司总报表.xlsx, indexFalse) print(Excel文件合并完成)三、Word 自动化文档批量处理核心使用场景批量生成合同、报告、通知自动插入文字、表格、图片批量修改 Word 格式、替换文本读取 Word 内容提取关键信息1. 自动生成 Word 文档from docx import Document from docx.shared import Inches from docx.enum.text import WD_ALIGN_PARAGRAPH # 创建新的Word文档 doc Document() # 添加标题居中、加粗 title doc.add_heading(月度工作总结, level0) title.alignment WD_ALIGN_PARAGRAPH.CENTER # 添加正文段落 doc.add_paragraph(一、工作完成情况) doc.add_paragraph(1. 完成本月销售数据统计与报表生成\n2. 完成客户资料整理与归档\n3. 完成团队日常工作协调。) # 添加表格3行4列 table doc.add_table(rows3, cols4, styleTable Grid) # 填写表头 hdr_cells table.rows[0].cells hdr_cells[0].text 项目 hdr_cells[1].text 计划 hdr_cells[2].text 实际 hdr_cells[3].text 完成率 # 填写数据 row_cells table.rows[1].cells row_cells[0].text 销售额 row_cells[1].text 50万 row_cells[2].text 58万 row_cells[3].text 116% # 添加图片 doc.add_picture(工作图表.png, widthInches(4)) # 保存文档 doc.save(月度工作总结.docx) print(Word文档生成完成)2. 批量替换 Word 文本批量生成合同from docx import Document def replace_text(doc, old_text, new_text): # 遍历所有段落替换文本 for paragraph in doc.paragraphs: if old_text in paragraph.text: paragraph.text paragraph.text.replace(old_text, new_text) # 打开模板文件 doc Document(合同模板.docx) # 批量替换变量公司名、姓名、日期 replace_text(doc, {{公司名称}}, 科技有限公司) replace_text(doc, {{乙方姓名}}, 张三) replace_text(doc, {{签订日期}}, 2025年12月25日) # 保存新合同 doc.save(张三_服务合同.docx) print(合同生成完成)四、PDF 自动化格式处理神器核心使用场景合并多个 PDF 文件拆分 PDF 为单个页面提取 PDF 文本 / 表格数据给 PDF 添加水印、加密1. 合并多个 PDF 文件from PyPDF2 import PdfMerger # 创建合并器 merger PdfMerger() # 需要合并的PDF文件列表 pdf_files [报告1.pdf, 报告2.pdf, 报告3.pdf] # 逐个添加文件 for pdf in pdf_files: merger.append(pdf) # 保存合并后的文件 merger.write(完整报告.pdf) merger.close() print(PDF合并完成)2. 提取 PDF 文本内容import pdfplumber # 打开PDF文件 with pdfplumber.open(财务报表.pdf) as pdf: # 读取第1页内容页码从0开始 page pdf.pages[0] text page.extract_text() print(PDF文本内容) print(text) # 提取PDF中的表格 table page.extract_table() if table: print(\nPDF表格数据) for row in table: print(row)3. 拆分 PDF 文件from PyPDF2 import PdfReader, PdfWriter # 读取原PDF reader PdfReader(长文档.pdf) # 拆分前3页为新PDF writer PdfWriter() for page_num in range(3): writer.add_page(reader.pages[page_num]) # 保存拆分后的PDF with open(前3页内容.pdf, wb) as f: writer.write(f) print(PDF拆分完成)五、综合实战自动化办公流程三合一场景销售数据 → Excel 统计 → Word 报告 → PDF 归档import pandas as pd from docx import Document from PyPDF2 import PdfMerger, PdfWriter # 1. 读取Excel数据并统计 df pd.read_excel(销售数据.xlsx) total_sales df[销售额].sum() top_product df.loc[df[销售额].idxmax(), 产品] # 2. 生成Word分析报告 doc Document() doc.add_heading(销售数据分析报告, 0) doc.add_paragraph(f总销售额{total_sales} 元) doc.add_paragraph(f销量最高产品{top_product}) doc.save(销售分析报告.docx) # 3. 转换为PDF归档需额外安装libreoffice或win32com这里简化为合并归档 print(自动化流程完成Excel统计 → Word报告生成)六、高频问题与避坑指南Excel 打不开openpyxl只支持.xlsx不支持.xls老旧格式用xlrd1.2.0Word 样式错乱尽量使用模板修改不要手动复杂排版PDF 提取乱码用pdfplumber替代PyPDF2提取精度更高批量处理文件用os库遍历文件夹避免手动输入文件名总结Excel用pandas做数据处理openpyxl做样式美化适合报表 / 数据统计Word用python-docx批量生成合同、报告替代手动复制粘贴PDF用PyPDF2合并拆分pdfplumber提取内容解决 PDF 编辑难题核心价值10 分钟代码替代 1 天重复手动办公零基础也能快速上手

更多文章