网友作品 #000172 · 提交于 2026/08/18
Excel行列转置加载项:选中区域一键原位行列互换


1 / 2
作品简介
这是一个 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。
- 在装有 Excel/WPS 的电脑上,进入
excel-vba-addin-builder/projects/rowcol-transpose/。 - 双击
build.bat(或右键用 PowerShell 运行build.ps1)。 - 成功后会在
dist/下生成行列变换工具.xlam,并附带:install_excel_*.bat/uninstall_excel_*.bat:仅对 Excel 注册 / 卸载install_wps_*.bat/uninstall_wps_*.bat:仅对 WPS 注册 / 卸载安装说明.txt:分发与安装指引
- 双击对应
install_*.bat安装;打开 Excel/WPS,功能区出现「行列变换」选项卡。 - 选中区域 点「原位转置」即可(结果就地覆盖选区左上角)。
注意:
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 编译依赖) -
分发给他人受原作者授权约束,注意保留水印