"大家好!最近在整理技术资料时发现,很多小伙伴都在问如何系统学习Python——从基础语法到爬虫开发,从数据分析到AI应用,不同阶段的学习路径和资源选择确实容易让人迷茫。

今天特意为大家准备了一份经过筛选的Python学习资料包,包含:
✅ 30本经典电子书(从入门到进阶)
✅ 100+实战项目源码
✅ 人工智能入门课程(限时免费)
✅ 编程思维训练手册

无论你是零基础小白还是想提升的开发者,这些资料都能帮你节省大量搜索时间。领取方式非常简单——文末准备了我的名片,扫码即可获取全部资源,还能加入Python学习交流群和同行一起成长!"
 


Excel是我们经常打交道的工具,手动处理Excel文件有时效率比较低。但借助Python的openpyxlpandas库,可以轻松自动化Excel文件的处理流程。

本文通过几个代码示例,说下关于工作薄xlsx和工作表sheet的操作,后面有一个综合示例。

1. 加载工作簿 获取工作表

开始操作之前,需要先加载工作簿,然后获取其中的工作表,openpyxl库就提供了简洁的API来完成这些操作。

下面代码给出了三种获取工作表的方法


import openpyxl

# 加载现有的工作簿
wb = openpyxl.load_workbook('各年业绩表.xlsx')

# 1.获取活动工作表(默认是打开时显示的工作表)
ws1 = wb.active
print(f"活动工作表名称: {ws1.title}")

# 2.以索引值方式获取工作表(索引从0开始)
ws2 = wb.worksheets[2]
print(f"第三个工作表名称: {ws2.title}")

# 3.以工作表名获取(如果知道工作表的名称,可以直接通过名称获取)
ws3 = wb['2025年']
print(f"2025年工作表名称: {ws3.title}")

图片

图片

2. 遍历工作表

对工作簿中的所有工作表进行操作。遍历所有工作表,并获取它们的名称。


# 遍历所有工作表并打印名称
print("所有工作表名称:")
for sh in wb.worksheets:
    print(sh.title)

图片

3. 修改工作表名称

对工作表的名称进行修改,以便更好地标识内容或进行分类。

  • 
    # 修改工作表的名称
    if len(wb.worksheets) > 1:
        wb.worksheets[1].title = 'demo'
        print("第二个工作表名称已修改为 'demo'")
    else:
        print("工作簿中没有足够的工作表")

4.保存工作簿

完成对工作簿的修改后,将其保存到一个新的文件中,以防止覆盖原始文件。


# 保存工作簿为新的文件
wb.save('各年业绩表-1.xlsx')
print("工作簿已成功保存为 '各年业绩表-1.xlsx'")

图片

图片

5.批量修改工作表名称

在处理包含多个工作表的复杂工作簿时,可能需要对所有工作表的名称进行批量修改,以添加统一的后缀或前缀,方便进行后续的操作或标识。


# 遍历所有工作表,并修改工作表的名称
for sh in wb.worksheets:
    sh.title = sh.title + '-基础编程Dev'
# 保存后生效

6.使用pandas读取和处理Excel数据

除了使用openpyxl操作Excel文件,还可以借助pandas库来读取和处理Excel中的数据。


import pandas as pd

# 使用 pandas 读取修改后的 Excel 文件
df = pd.read_excel('各年业绩表(修改后).xlsx', 
      engine='openpyxl')

# 打印 DataFrame 的前几行
print(df.head())

图片

7.将DataFrame保存为新的Excel文件

在使用pandas对数据进行处理后,将数据保存为一个新的Excel文件。


# 如果需要,可以将 DataFrame 保存为新的 Excel 文件
df.to_excel('各年业绩表(处理后).xlsx', 
index=False, 
engine='openpyxl')

8. 处理年度业绩数据 综合实例

假设有一个包含多年度业绩数据的Excel文件,其中每个工作表代表一年的业绩数据,每个月份的业绩金额都记录在对应的行中。

现在,需要对这些数据进行以下操作:

  1. 遍历所有工作表,获取每个月份的业绩金额。

  2. 计算每年的总业绩金额。

  3. 将所有年份的业绩数据汇总到一个新的工作表,并保存新Excel文件。

8.1 读取和计算每年的业绩数据


# 加载现有的工作簿
wb = openpyxl.load_workbook('各年业绩表.xlsx')

# 创建一个新的工作表,用于汇总所有年份的业绩数据
summary_ws = wb.create_sheet(title='业绩汇总')

# 写入汇总表的表头
summary_ws.append(['年份', '1月', '2月', '3月', '4月', '5月', 
        '6月', '7月', '8月', '9月', '10月', 
        '11月', '12月', '总金额'])

# 遍历所有工作表,计算每年的业绩数据
for ws in wb.worksheets:
    if ws.title != '业绩汇总':  # 跳过汇总表
        year_data = [ws.title]  # 年份
        total_amount = 0  # 初始化总金额
        for row in ws.iter_rows(min_row=2, max_row=13, min_col=2, max_col=2, values_only=True):  # 遍历每个月份的金额
            amount = row[0]
            if amount is not None:
                year_data.append(amount)
                total_amount += amount
            else:
                year_data.append(0)  # 如果金额为空,记录为0
        year_data.append(total_amount)  # 添加总金额
        summary_ws.append(year_data)  # 将每年的数据写入汇总表

8.2 保存汇总后的Excel文件


# 保存汇总后的Excel文件
wb.save('各年业绩表-汇总.xlsx')
print("汇总后的Excel文件已保存为 '各年业绩表-汇总.xlsx'")

图片

这样,我们就得到了一个包含所有年份业绩数据汇总的工作簿。

在实际应用中,可以根据具体需求灵活组合这些技巧,结合openpyxlpandas的优势,快速完成数据的读取、处理和分析。

- END-

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐