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

使用Python或Power Query按固定间隔将多行数据转置到同一列

Excel数据转置填充解决方案

针对你需要将源Excel数据按指定规则转置填充到目标Excel的需求,这里提供一个基于Python openpyxl库的实现脚本,无需手动操作即可完成批量处理。

前置准备

首先安装依赖库:

pip install openpyxl

实现脚本

from openpyxl import load_workbook

# 加载源文件与目标文件
source_wb = load_workbook('源数据集.xlsx')
target_wb = load_workbook('目标数据集.xlsx')

# 获取工作表(默认使用第一个工作表,若数据在指定sheet可修改为source_wb['SheetName'])
source_ws = source_wb.active
target_ws = target_wb.active

# 初始化目标C列的起始填充行
target_start_row = 2

# 遍历源文件A列(从第2行开始)
for row_idx, row in enumerate(source_ws.iter_rows(min_row=2, max_col=1, values_only=True), start=2):
    point_id = row[0]
    if not point_id:
        # 若A列单元格为空,停止遍历(若源文件中间有空行后仍有数据,可替换为continue)
        break
    
    # 读取当前行B到E列的数值
    species_values = [source_ws.cell(row=row_idx, column=col).value for col in range(2, 6)]
    
    # 将数值写入目标C列的对应位置
    for offset, value in enumerate(species_values):
        target_ws.cell(row=target_start_row + offset, column=3).value = value
    
    # 更新下一次填充的起始行(下移7个单元格,对应行号+6)
    target_start_row += 6

# 保存更新后的目标文件(避免覆盖原文件,使用新文件名)
target_wb.save('目标数据集_更新后.xlsx')
print("数据处理完成,结果已保存至'目标数据集_更新后.xlsx'")

关键逻辑说明

  1. 遍历源数据:从源文件A2开始逐行检查,若单元格为空则停止(可根据实际数据结构调整为空行时的处理逻辑)。
  2. 读取数据:提取当前行B到E列的所有数值,包括空值。
  3. 写入目标数据:将读取到的数值依次写入目标文件的C列,起始位置从target_start_row开始,覆盖4个连续单元格。
  4. 更新起始位置:每次处理完一行源数据后,将目标起始行增加6,确保下一次填充位置在上一次的下方第7个单元格(如从C2到C8)。

注意事项

  • 确保源文件的物种数据确实在B到E列,若列范围不同,修改range(2, 6)的参数(例如B到F列改为range(2, 7))。
  • 运行脚本前需关闭源文件和目标文件,否则会触发权限错误。
  • 脚本默认保存为新文件,避免覆盖原始目标数据,可根据需求修改保存的文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:10:23