You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python拆分Excel列至独立文件(openpyxl问题求助)

解决Excel拆分列生成独立工作簿的问题

问题核心

你的代码之所以每次保存整个工作表,是因为直接保存了原始工作簿,没有创建新工作簿来单独存放A列+目标列的组合数据。下面提供两种解决方案:


方案1:使用openpyxl实现

适合需要精细控制单元格的场景,代码逻辑如下:

  1. 加载原始Excel文件
  2. 遍历目标列(B、C...)
  3. 为每一列新建工作簿,复制A列和当前列的数据
  4. 保存新工作簿
from openpyxl import Workbook, load_workbook

# 加载原始工作簿
original_wb = load_workbook('billingTest.xlsx')
original_ws = original_wb.active

# 获取A列所有单元格(含表头)
column_a = original_ws['A']

# 遍历从第2列开始的所有列(跳过A列)
for col_num, col in enumerate(original_ws.iter_cols(min_col=2), start=1):
    # 新建空白工作簿和工作表
    new_wb = Workbook()
    new_ws = new_wb.active
    
    # 复制A列到新表的第一列
    for row_idx, cell in enumerate(column_a, start=1):
        new_ws.cell(row=row_idx, column=1, value=cell.value)
    
    # 复制当前列到新表的第二列
    for row_idx, cell in enumerate(col, start=1):
        new_ws.cell(row=row_idx, column=2, value=cell.value)
    
    # 保存新文件,文件名按序号区分
    new_wb.save(f'billingTest_{col_num}.xlsx')

方案2:使用pandas实现(更适合新手)

pandas处理表格数据更简洁,无需手动操作单元格:

import pandas as pd

# 读取原始Excel文件
df = pd.read_excel('billingTest.xlsx')

# 提取第一列数据(不管列名是什么)
first_col = df.iloc[:, 0]

# 遍历除第一列外的所有列
for col_name in df.columns[1:]:
    # 拼接第一列和当前列
    new_df = pd.concat([first_col, df[col_name]], axis=1)
    # 保存为新Excel,index=False避免生成行号
    new_df.to_excel(f'billingTest_{col_name}.xlsx', index=False)

内容的提问来源于stack exchange,提问作者csywak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:25:22