📗 Excel 表格处理
专业的 Excel 操作工具:创建财务模型、数据分析、自动化报表,支持公式和格式化
🎯 这个技能能做什么?
Excel 表格处理技能提供完整的电子表格操作方案,从数据分析到财务建模,从自动化报表到可视化图表。
核心能力
- 📊 数据分析 - 使用 pandas 进行数据清洗、转换、统计分析
- 📐 公式和计算 - 创建动态电子表格,使用 Excel 公式而非硬编码
- 💼 财务建模 - 遵循行业标准:颜色编码、数字格式、公式规范
- 🎨 格式化 - 单元格样式、条件格式、数据验证
- 📈 数据可视化 - 图表、透视表、数据分析
- 🔄 公式重算 - 使用 LibreOffice 自动重新计算公式值
💡 适合什么场景?
场景 1:财务模型创建
任务:创建三年期收入预测模型
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
ws.title = "Revenue Forecast"
# 设置标题(黑色)
ws['A1'] = "Revenue Forecast ($M)"
ws['A1'].font = Font(bold=True, color="000000")
# 年份列(文本格式)
ws['B1'] = "2024"
ws['C1'] = "2025"
ws['D1'] = "2026"
# 假设区域(蓝色文字)
ws['A3'] = "Assumptions"
ws['A4'] = "Growth Rate"
ws['B4'] = 0.15 # 15% 增长
ws['B4'].font = Font(color="0000FF") # 蓝色=输入
# 基准收入(蓝色文字)
ws['A6'] = "Base Year Revenue"
ws['B6'] = 100.0
ws['B6'].font = Font(color="0000FF")
# 收入预测(黑色文字=公式)
ws['A8'] = "Projected Revenue"
ws['B8'] = "=B6" # 2024 = 基准
ws['C8'] = "=B8*(1+$B$4)" # 2025 = 2024 * (1+增长率)
ws['D8'] = "=C8*(1+$B$4)" # 2026 = 2025 * (1+增长率)
for cell in [ws['B8'], ws['C8'], ws['D8']]:
cell.font = Font(color="000000") # 黑色=公式
wb.save("revenue_forecast.xlsx")
# 重新计算公式值
import subprocess
subprocess.run(["python", "recalc.py", "revenue_forecast.xlsx"])
场景 2:数据分析和可视化
任务:分析销售数据并创建报表
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_excel("sales_data.xlsx")
# 数据分析
monthly_sales = df.groupby('Month')['Revenue'].sum()
top_products = df.groupby('Product')['Revenue'].sum().sort_values(ascending=False).head(5)
# 创建分析报表
with pd.ExcelWriter("sales_analysis.xlsx", engine='openpyxl') as writer:
# 写入汇总数据
monthly_sales.to_excel(writer, sheet_name='Monthly Summary')
top_products.to_excel(writer, sheet_name='Top Products')
# 详细数据
df.to_excel(writer, sheet_name='Raw Data', index=False)
场景 3:批量更新模板
任务:为每个部门生成定制报表
from openpyxl import load_workbook
departments = ["销售部", "市场部", "技术部"]
data = {
"销售部": {"revenue": 5000000, "growth": 0.23},
"市场部": {"revenue": 1200000, "growth": 0.18},
"技术部": {"revenue": 800000, "growth": 0.15}
}
for dept in departments:
wb = load_workbook("template.xlsx")
ws = wb.active
# 更新标题
ws['A1'] = f"{dept} - 季度报告"
# 填入数据(蓝色=输入)
ws['B5'] = data[dept]["revenue"]
ws['B5'].font = Font(color="0000FF")
ws['B6'] = data[dept]["growth"]
ws['B6'].font = Font(color="0000FF")
# 其他单元格包含公式(自动计算)
wb.save(f"{dept}_report.xlsx")
# 重算公式
subprocess.run(["python", "recalc.py", f"{dept}_report.xlsx"])
🚀 快速开始
示例 1:使用 pandas 读取和分析
import pandas as pd
# 读取 Excel
df = pd.read_excel("data.xlsx")
# 数据预览
print(df.head())
print(df.describe())
# 数据筛选
high_value = df[df['Sales'] > 10000]
# 导出结果
high_value.to_excel("high_value_sales.xlsx", index=False)
示例 2:使用 openpyxl 创建公式表格
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 数据列
ws['A1'] = "Product"
ws['B1'] = "Quantity"
ws['C1'] = "Price"
ws['D1'] = "Total"
ws['A2'] = "Product A"
ws['B2'] = 10
ws['C2'] = 50
ws['D2'] = "=B2*C2" # 公式,不是硬编码
ws['A3'] = "Product B"
ws['B3'] = 15
ws['C3'] = 80
ws['D3'] = "=B3*C3"
# 总计(使用 SUM 公式)
ws['D4'] = "=SUM(D2:D3)"
wb.save("products.xlsx")
# ⚠️ 必须重算公式!
import subprocess
subprocess.run(["python", "recalc.py", "products.xlsx"])
示例 3:应用颜色编码和格式
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill
wb = Workbook()
ws = wb.active
# 输入区域(蓝色)
ws['A1'] = "Sales Growth Assumption"
ws['B1'] = 0.15
ws['B1'].font = Font(color="0000FF") # 蓝色=用户输入
# 公式区域(黑色)
ws['A3'] = "Projected Sales"
ws['B3'] = "=100*(1+B1)"
ws['B3'].font = Font(color="000000") # 黑色=公式
# 需要关注的假设(黄色背景)
ws['B1'].fill = PatternFill(start_color="FFFF00", fill_type="solid")
wb.save("styled.xlsx")
🛠️ 主要工具库
| 工具 | 用途 | 特点 |
|---|---|---|
| pandas | 数据分析 | 读取、分析、转换数据 |
| openpyxl | 创建/编辑 Excel | 支持公式、格式、图表 |
| recalc.py | 公式重算 | 使用 LibreOffice 计算公式值 |
| xlsxwriter | 高性能写入 | 适合大数据集,不支持读取 |
🎯 关键原则
1. ❌ 永远不要硬编码计算值
# ❌ 错误:在 Python 中计算并硬编码
total = df['Sales'].sum() # 假设是 5000
ws['B10'] = 5000 # 硬编码!
# ✅ 正确:使用 Excel 公式
ws['B10'] = "=SUM(B2:B9)" # 动态计算
2. 🎨 遵循财务建模颜色规范
- 蓝色文字 (
RGB: 0,0,255) - 用户输入、假设 - 黑色文字 (
RGB: 0,0,0) - 所有公式和计算 - 绿色文字 (
RGB: 0,128,0) - 同一工作簿内的引用 - 红色文字 (
RGB: 255,0,0) - 外部文件链接 - 黄色背景 (
RGB: 255,255,0) - 关键假设需要关注
3. ⚠️ 确保零公式错误
- 交付前必须无
#REF!,#DIV/0!,#VALUE!,#N/A,#NAME? - 使用
recalc.py验证公式 - 根据错误报告修复问题
4. 📏 数字格式标准
- 年份: 文本格式
"2024"不是2,024 - 货币:
$#,##0并在表头标注单位 - 零值: 显示为
-而非0 - 百分比:
0.0%格式 - 负数: 使用括号
(123)而非-123
📚 深入了解
查看完整指南了解:
- 🔧 完整工作流程 - 创建、编辑、分析的详细步骤
- 💼 财务建模规范 - 颜色编码、公式构建、文档要求
- 📊 pandas 数据分析 - 完整的数据处理教程
- 🎨 格式化指南 - 样式、条件格式、数据验证
- 🔍 公式重算详解 - recalc.py 使用和错误处理
- 📈 图表和透视表 - 数据可视化最佳实践
🏷️ 相关技能
- Word 文档处理 - 处理 Word 文档
- PDF 文档处理 - 处理 PDF 文档
- PowerPoint 演示文稿处理 - 处理 PPT 文档