返回作品列表

网友作品 #000172 · 提交于 2026/08/18

Excel行列转置加载项:选中区域一键原位行列互换

★★★★☆零基础办公智能体国内顶级模型ExcelVBA

作品作者

pyz零基础
开发工具
办公智能体
AI 模型
国内顶级模型
使用 Skill
ExcelVBA
提交你的作品

作品简介

这是一个 Excel / WPS 的行列变换(转置)加载项:选中任意区域,点功能区「行列变换」选项卡里的「原位转置」按钮,行变列、列变行,结果原位覆盖选区,并自动清理非方阵边界的旧数据残留。它基于 excel-vba-addin-builder 构建框架开发,除加载项外还附带一个基于 openpyxl 的 Python 脚本,没有安装 Excel 的环境也能用命令行批量转置 xlsx 文件。

核心亮点

  • 单行、多行、单列、多列、任意矩形区域均可一键原位转置,就地覆盖结果
  • 采用「读入数组 → 内存计算 → 整块写回」方式并关闭屏幕刷新,不逐格读写、性能稳定
  • 复用构建框架的 Ribbon 功能区模板与安装/卸载脚本,双击 bat 即可注册到 Excel / WPS
  • Python 参考实现支持 –rows、–cols、–range 指定转置范围,可指定工作表与输出文件
  • 构建产物自动嵌入作者与授权水印信息

技术与工具

  • Excel VBA(.xlam)+ PowerShell + Excel COM 自动构建管线
  • 基于 excel-vba-addin-builder v5.0.17 框架(源自 Excel 催化剂)二次开发,该框架支持 xlsm/xlam/UDF 三类产物,可自动生成 Ribbon 按钮、UserForm 窗体与 ListObject 工作台,并自动做冒烟测试
  • Python 脚本基于 openpyxl,pip 安装依赖即用
  • 作者零基础,借助 AI 与该构建框架完成首个作品

适用场景

  • 医疗、行政等需要频繁「行变列、列变行」整理表格数据的岗位
  • 想把转置动作做成加载项按钮、免去每次手动复制粘贴的人
  • 没有 Excel 环境或需要命令行批量转置 xlsx 的自动化场景
原始提交内容(点开查看,可复制全文去问 AI)

行列变换工具介绍.md# 行列变换工具(hangliebianhuan-行列变换工具-01)介绍

一、这是什么工具

这是一个 Excel / WPS 的「行列变换(转置)」加载项项目,位于目录:

E:/EasyShu-插件/Skill/hangliebianhuan-行列变换工具-01/

它的核心功能是:把你当前在表格中选中的任意区域做“转置”——选中的行变成列、选中的列变成行,结果原位覆盖选区(含非方阵边界的自动清理,避免旧数据残留)。

它并不是一堆散脚本,而是基于一套完整的加载项构建框架 excel-vba-addin-builder(版本 5.0.17)做出来的子项目:

  • 复用了该框架的 构建管线(用 PowerShell + Excel COM 自动编译 .xlam 加载项)
  • 复用了它的 Ribbon 功能区模板(自动生成选项卡和按钮)
  • 复用了它的 安装 / 卸载脚本(双击 .bat 即可注册到 Excel/WPS)
  • 复用了它的 授权水印机制(构建时自动嵌入作者与授权信息)

一句话概括:它是用“Excel VBA 加载项构建器”做出来的“选中区域一键转置”小工具。

二、它具体能干什么

在 Excel / WPS 里选中一块区域,点一下功能区里的「原位转置」按钮,效果如下:

你在 Excel 里选中 点击按钮后
任意一行(如第 3 行) 原地变成一列
任意几行(如第 2~5 行) 原地变成几列
任意一列(如列 B) 原地变成一行
任意几列(如 B、D 两列) 原地变成几行
任意矩形区域 行、列整体互换(就地覆盖)

业务代码位于 projects/rowcol-transpose/modules/modRowColTranspose.vba,采用「读入数组 内存计算 整块写回」的方式,性能稳定、不会逐格读写卡顿;并关闭 ScreenUpdating 提升速度。

三、两种使用方式

方式一:生成 Excel/WPS 加载项(带功能区按钮)

需要本机已安装 Microsoft Excel 或 WPS 表格。构建时框架会通过 COM 操作宿主来编译 .xlam。

  1. 在装有 Excel/WPS 的电脑上,进入 excel-vba-addin-builder/projects/rowcol-transpose/。
  2. 双击 build.bat(或右键用 PowerShell 运行 build.ps1)。
  3. 成功后会在 dist/ 下生成 行列变换工具.xlam,并附带:
    • install_excel_*.bat / uninstall_excel_*.bat:仅对 Excel 注册 / 卸载
    • install_wps_*.bat / uninstall_wps_*.bat:仅对 WPS 注册 / 卸载
    • 安装说明.txt:分发与安装指引
  4. 双击对应 install_*.bat 安装;打开 Excel/WPS,功能区出现「行列变换」选项卡。
  5. 选中区域 点「原位转置」即可(结果就地覆盖选区左上角)。

注意:dist/ 目录里现成的 FoodToolsDemo.xlam 只是构建框架自带的演示模板,
不是转置工具本身;真正的「行列变换工具.xlam」需要按上面步骤 build 出来。

方式二:直接用 Python 转置(无需 Excel)

适合没有 Excel 的环境,或想批量 / 命令行处理。脚本位于
projects/rowcol-transpose/scripts/transpose_xlsx.py(基于 openpyxl,已实测):

# 转置整个工作表的使用区域
python scripts/transpose_xlsx.py 数据.xlsx

# 只转置第 2~5 行(跨所有列)
python scripts/transpose_xlsx.py 数据.xlsx --rows 2 3 4 5

# 只转置 B、D 两列(跨所有行)
python scripts/transpose_xlsx.py 数据.xlsx --cols B D

# 转置指定矩形区域
python scripts/transpose_xlsx.py 数据.xlsx --range B2:E10

# 指定工作表与输出文件
python scripts/transpose_xlsx.py 数据.xlsx --sheet Sheet1 --output 结果.xlsx

依赖:pip install openpyxl。

四、目录结构

hangliebianhuan-行列变换工具-01/
 excel-vba-addin-builder/            # 加载项构建框架(Skill 本体,v5.0.17)
     SKILL.md                        # 框架总入口与路由
     CHANGELOG.md                    # 版本变更记录
     LICENSE_TRACE.txt               # 授权追踪说明
     projects/
        rowcol-transpose/           #  本工具的真正业务项目
            modules/modRowColTranspose.vba   # 转置 VBA 逻辑 + 两个 Ribbon 回调
            scripts/transpose_xlsx.py        # 无需 Excel 的 Python 参考实现
            build.ps1 / build.bat             # 一键构建 .xlam
            sample/                          # 示例数据与验证脚本
     scripts/                        # 框架级脚本(bootstrap / build / instantiate)
     templates/                      # 蓝图与内部骨架模板
     references/                     # 知识库(COM、Ribbon、VBA 最佳实践等)
     dist/                           # 参考 Demo 产物(FoodToolsDemo.xlam 等)

五、底层框架:excel-vba-addin-builder

excel-vba-addin-builder 是一个面向 Excel / WPS VBA 宏交付的构建框架,能力不限于转置:

  • 支持三类产物:xlsm(宏工作簿)、xlam(通用加载项)、UDF(自定义函数)
  • 可自动生成 Ribbon 功能区按钮、UserForm 输入窗体、ListObject 工作台
  • 通过 PowerShell 5.1 + COM 自动构建、安装并做冒烟测试
  • 自带大量参考文档与反模式清单,引导 AI 按最佳实践产出 VBA

本“行列变换工具”只是它众多可构建场景中的一个具体子项目(双按钮基线:原位转置 + 使用说明)。

若需要更多变体(多行堆叠成单列 / 单列拆分多行 / 多列堆叠成单行 / 单行拆分多列,
共 6 按钮功能区),README 提示可使用已单独打包的 WorkBuddy Skill:rowcol-transpose。

六、授权与合规(重要)

  • 本工具基于 excel-vba-addin-builder 二次开发,来源 Excel 催化剂 / 彭雁忠。
  • 框架授权:仅限被授权接收者自用,禁止未授权二次传播。
  • LicenseId:laopeng1758_彭雁忠_专用
  • 构建产物会嵌入授权水印与构建指纹,请勿移除或淡化;若要对外分发,请先获得原作者许可。
  • 本目录内的 VBA / Python 转置逻辑为新增业务代码,可在自用范围内自由修改。

七、适合谁用 / 不适合谁用

适合:

  • 经常需要在 Excel/WPS 里做“行变列、列变行”数据整理的人

  • 想把这个动作做成“加载项 + 按钮”,免得每次手动复制粘贴转置的人

  • 没有 Excel 但想用命令行批量转置 .xlsx 的人(用 Python 版) 不适合 / 注意:

  • 需要“多行堆叠成单列”等更复杂重组形态时,本版只覆盖基础转置,需换用带 6 按钮的 rowcol-transpose 版本

  • 构建 .xlam 必须在本机装有 Excel/WPS 的环境下进行(COM 编译依赖)

  • 分发给他人受原作者授权约束,注意保留水印