python与excel整合全教程

Python 与 Excel 的整合非常强大,尤其适合处理大数据、自动化表格操作以及进行高级数据分析。以下是一个全教程,涵盖常用的 Python 库及其应用:

1. 准备工作

  • 安装必要的库: 使用以下命令安装常用库:
    pip install openpyxl pandas xlrd xlsxwriter pywin32
    • openpyxl: 用于操作 Excel 的 .xlsx 文件(推荐)。
    • pandas: 强大的数据分析工具,支持读取和写入 Excel。
    • xlrdxlsxwriter: 分别用于读取 .xls 文件和写入 .xlsx 文件。
    • pywin32: 操作 Windows 的 Excel 应用程序(需本地安装 Microsoft Excel)。

2. Excel 文件的基本操作

2.1 openpyxl 操作 Excel

读取数据:
from openpyxl import load_workbook 
# 打开工作簿
wb = load_workbook('example.xlsx') 
sheet = wb.active 
# 获取单元格值 
print(sheet['A1'].value) 
# 遍历行或列 
for row in sheet.iter_rows(min_row=1, max_row=5, values_only=True): 
    print(row)
写入数据:
from openpyxl import Workbook

wb = Workbook()
sheet = wb.active

# 写入数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'

# 保存文件
wb.save('example.xlsx')

2.2 用 Pandas 处理 Excel

读取数据:
import pandas as pd

# 读取 Excel 文件
df = pd.read_excel('example.xlsx')

# 显示数据
print(df.head())
写入数据:
# 写入到 Excel 文件 
df.to_excel('output.xlsx', index=False)
数据处理示例:
# 筛选数据 
filtered = df[df['Sales'] > 500] print(filtered)

2.3 pywin32 操作 Excel 应用程序

import win32com.client

# 启动 Excel 应用程序
excel = win32com.client.Dispatch('Excel.Application')

# 打开一个工作簿
wb = excel.Workbooks.Open('C:\\path\\to\\your\\file.xlsx')
sheet = wb.Sheets(1)

# 获取单元格值
print(sheet.Cells(1, 1).Value)

# 保存并关闭
wb.Save()
wb.Close()
excel.Quit()

3. 可视化与自动化

3.1 openpyxl 添加图表

from openpyxl.chart import BarChart, Reference
from openpyxl import Workbook

# 创建工作簿和数据
wb = Workbook()
sheet = wb.active
data = [
    ['Month', 'Sales'],
    ['Jan', 100],
    ['Feb', 200],
    ['Mar', 300],
]
for row in data:
    sheet.append(row)

# 创建图表
chart = BarChart()
values = Reference(sheet, min_col=2, min_row=2, max_row=4)
chart.add_data(values, titles_from_data=True)
sheet.add_chart(chart, 'E5')

wb.save('chart.xlsx')

3.2 用 Pandas 实现批量处理和统计

# 按月份汇总销售额
summary = df.groupby('Month')['Sales'].sum()
print(summary)

# 将汇总结果保存到新表
summary.to_excel('summary.xlsx')

4. 进阶技巧

4.1 处理多表操作

  • 读取多个 sheet:
excel_file = pd.ExcelFile('example.xlsx')
for sheet_name in excel_file.sheet_names:
    print(sheet_name)
    sheet_data = excel_file.parse(sheet_name)
    print(sheet_data.head())
  • 写入多个 sheet:
with pd.ExcelWriter('multi_sheets.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1')
    df2.to_excel(writer, sheet_name='Sheet2')

4.2 集成与自动化

利用 Python 脚本定时操作:

import schedule
import time

def job():
    print("运行 Excel 操作任务")
    # 调用操作代码
    pass

# 每天运行
schedule.every().day.at("09:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

5. 参考资源

  • openpyxl 文档: https://openpyxl.readthedocs.io
  • pandas 文档: https://pandas.pydata.org
  • pywin32 项目主页: https://github.com/mhammond/pywin32

你可能感兴趣的:(python,excel,开发语言)