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

如何对每5行重复的Excel电子表格进行规范化格式转换

数据转换实现方案

核心算法逻辑

  • 读取原始Excel数据,同时保留单元格的超链接属性,避免仅读取文本丢失链接信息
  • 按固定步长5将原始行数据分割为独立数据组,每个组对应目标格式的一行数据
  • 遍历每个数据组,将组内第1-5行的内容分别映射到目标格式的对应列,存在超链接的单元格同步提取链接地址
  • 合并所有转换完成的组数据,输出为规整后的表格文件

可运行Python实现

首先执行以下命令安装依赖库:
pip install openpyxl pandas

import pandas as pd
from openpyxl import load_workbook

# 加载原始Excel文件
wb = load_workbook("soft.xlsx")
ws = wb.active

# 存储最终结果的列表
result = []
# 每组固定5行
GROUP_SIZE = 5

# 遍历所有行,按步长5分割组
for row_start in range(1, ws.max_row + 1, GROUP_SIZE):
    # 初始化当前组的字段
    group_data = {}
    # 遍历组内的5行
    for offset in range(GROUP_SIZE):
        current_row = row_start + offset
        if current_row > ws.max_row:
            break
        # 此处column=1代表原始数据存在第一列,可根据实际情况调整列号
        cell = ws.cell(row=current_row, column=1)
        # 提取单元格文本值
        cell_value = cell.value if cell.value else ""
        # 提取超链接地址(不存在则留空)
        cell_link = cell.hyperlink.target if cell.hyperlink else ""
        
        # 按组内偏移量映射到对应字段,可根据实际结构调整
        if offset == 0:
            group_data["软件名称"] = cell_value
            group_data["官方链接"] = cell_link
        elif offset == 1:
            group_data["分类"] = cell_value
        elif offset == 2:
            group_data["版本号"] = cell_value
        elif offset == 3:
            group_data["更新时间"] = cell_value
        elif offset == 4:
            group_data["软件简介"] = cell_value
    # 把当前组加入结果集
    result.append(group_data)

# 转换为表格导出为新Excel
df = pd.DataFrame(result)
df.to_excel("规整后数据.xlsx", index=False)

自定义调整说明

  • 若原始数据存储列不是首列,可修改代码中ws.cell(row=current_row, column=1)的column参数为对应列编号
  • 组内偏移对应的字段名称可根据你的实际目标格式自由调整
  • 若需将超链接直接嵌入输出Excel的单元格中,可补充openpyxl的超链接写入逻辑
  • 无代码需求可使用Excel Power Query实现:导入数据后新增索引列,对索引列取模5得到组内位置标识、整除5得到分组ID,随后按分组ID做透视聚合即可完成转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:42:03