尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何使用 Python 在 Excel 中实现行列互换(转置)
目录Excel 中的转置是什么意思安装所需的 Python Excel 库使用 Python 将 Excel 行转换为列或将列转换为行方法 1复制并转置单元格区域方法 2使用 TRANSPOSE 函数转置 Excel 数据两种方法应该怎么选转置 Excel 数据时需要注意什么总结在整理 Excel 数据时经常会遇到数据排列方向不合适的情况。例如月份按列纵向排列而报表需要横向展示或者导入的数据按列组织但后续处理时希望改成按行排列。在 Excel 中这种将行和列互换的操作称为转置。它常用于调整表格布局、整理导入数据或者让现有数据更适合后续统计和报表展示。本文将介绍如何使用 Python 以编程方式转置 Excel 中的行和列。Excel 中的转置是什么意思转置会交换单元格区域的行和列同时保持数据原有的排列顺序。例如下面这组按列排列的数据一月 二月 三月 四月转置后会变成一行一月 | 二月 | 三月 | 四月对于包含多行多列的单元格区域转置后行数和列数也会互换。例如4 × 1的区域会变成1 × 43 × 5的区域则会变成5 × 3。安装所需的 Python Excel 库本文使用Spire.XLS for Python处理 Excel 文件。该库可以直接读取和修改 Excel 工作簿不需要安装 Microsoft Excel。你通过 PyPI 安装该库pipinstallSpire.XLS如果已经安装 Spire.XLS但当前版本中没有转置功能可以通过以下命令升级版本pipinstall--upgradeSpire.XLS使用 Python 将 Excel 行转换为列或将列转换为行使用 Python 转置 Excel 行列主要有两种方式复制单元格区域并以转置后的数据粘贴到其他位置使用 Excel 的TRANSPOSE函数让转置结果随原数据变化下面分别介绍这两种方法。方法 1复制并转置单元格区域这种方式与 Excel 中的复制 选择性粘贴 转置类似。原来的数据不会被移动转置后的内容会写入指定的单元格区域。假设A1:A4中有 4 个纵向排列的值下面的代码可以将它们转置到A8:D8fromspire.xlsimport*# 加载 Excel 工作簿workbookWorkbook()workbook.LoadFromFile(input.xlsx)# 获取第一个工作表sheetworkbook.Worksheets[0]# 指定原始区域和转置后的位置source_rangesheet.Range[A1:A4]dest_rangesheet.Range[A8:D8]# 复制并转置单元格区域source_range.Copy(dest_range,CopyRangeOptions.Transpose)# 保存文件workbook.SaveToFile(TransposedOutput.xlsx,ExcelVersion.Version2016)workbook.Dispose()这里原来的A1:A4是一个4 × 1的区域转置后写入A8:D8变成1 × 4的横向区域。如果要将一行数据转换为一列只需要相应调整单元格区域source_rangesheet.Range[A1:D1]dest_rangesheet.Range[F1:F4]source_range.Copy(dest_range,CopyRangeOptions.Transpose)此时1 × 4的横向区域会转置成4 × 1的纵向区域。转置也不限于单行或单列同样可以处理包含多行多列的区域。例如将A1:C4转置到E1:H3source_rangesheet.Range[A1:C4]dest_rangesheet.Range[E1:H3]source_range.Copy(dest_range,CopyRangeOptions.Transpose)原来的区域为4 × 3转置后会变成3 × 4。方法 2使用 TRANSPOSE 函数转置 Excel 数据如果希望转置后的数据继续跟随原单元格中的内容变化可以使用 Excel 的TRANSPOSE函数。Spire.XLS for Python 可以通过FormulaArray属性为一个单元格区域设置数组公式。例如下面的代码使用TRANSPOSE将A2:A4中的数据转置到A10:C10fromspire.xlsimport*# 加载 Excel 工作簿workbookWorkbook()workbook.LoadFromFile(Sample.xlsx)# 获取第一个工作表sheetworkbook.Worksheets[0]# 在 A10:C10 中设置 TRANSPOSE 数组公式dest_rangesheet.Range[A10:C10]dest_range.FormulaArrayTRANSPOSE(A2:A4)# 计算当前工作表中的公式sheet.CalculateAllValue()# 保存文件workbook.SaveToFile(TransposeFormulaOutput.xlsx,ExcelVersion.Version2016)workbook.Dispose()这种方式并不是直接复制A2:A4中的值而是在A10:C10中写入引用原单元格的公式。因此当A2:A4中的数据发生变化并且工作表重新计算公式后转置后的内容也会随之更新。提示TRANSPOSE函数只负责转置数据不会同时复制原单元格的格式。如果需要保留字体、填充颜色、边框、数字格式等样式需要另外设置。两种方法应该怎么选如果只是调整表格布局希望转置后的数据与原数据相互独立可以使用复制方法。如果希望转置后的内容随原单元格数据变化而更新可以使用TRANSPOSE函数。转置 Excel 数据时需要注意什么在实际处理 Excel 文件时还需要注意以下几点单元格区域大小转置后行数和列数会互换。例如4 × 1的区域转置后需要1 × 4的空间。已有数据转置前检查写入位置避免覆盖原本需要保留的内容。公式引用如果转置的单元格中包含公式建议检查转置后的公式引用是否符合预期。合并单元格包含合并单元格的区域在转置后可能出现布局问题处理前最好先确认合并情况。单元格格式如果最终文件对格式有要求应检查数字格式、边框、填充颜色、条件格式等是否需要单独处理。区域重叠尽量不要将转置后的数据直接写回原区域以免覆盖尚未处理的数据。总结Excel 的转置功能可以快速交换数据的行和列适合调整表格布局、整理导入数据以及重新组织报表内容。使用 Spire.XLS for Python可以通过复制生成一份独立的转置数据也可以使用TRANSPOSE函数让转置结果随原数据变化而更新。对于需要重复处理或批量调整 Excel 文件的场景使用 Python 可以减少手动操作并减少人工操作导致的错误。
RELATED

相关推荐

代码比较工具全解析:从Git Diff到IDE与协作平台实战指南

代码比较工具全解析:从Git Diff到IDE与协作平台实战指南

1. 从“肉眼比对”到“智能对比”:为什么我们需要专门的代码比较工具还在用“肉眼扫描法”对比两个版本的代码吗?或者,你是不是也经历过这样的场景:同事在代码评审时,指着屏幕问你“这里改了什么?”&#x…

📅 2026/10/16 3:12:18
Kimi Code:AI编程助手如何通过自然语言操控电脑提升开发效率

Kimi Code:AI编程助手如何通过自然语言操控电脑提升开发效率

1. 项目概述:从“对话”到“操控”的AI编程工具进化最近在开发者圈子里,一个话题的热度持续攀升:国产的Kimi Code,以及它带来的“电脑控制”能力。如果你和我一样,长期在终端和IDE之间切换,为了一些重复性的…

📅 2026/10/16 3:13:43
把 OData 测试变成可重复回归测试,深入理解 SAP Gateway Client 的 Response Validation

把 OData 测试变成可重复回归测试,深入理解 SAP Gateway Client 的 Response Validation

在 SAP Gateway 开发现场里,/IWFND/GW_CLIENT 经常被当成一个内置版的 HTTP 测试工具来使用。一个 OData 服务开发完成以后,我们输入 Request URI,选择 GET、POST、PATCH 或 DELETE,按下 Execute,看到右侧返回 HTTP 200 或 HTTP 201,再检查一下 JSON Payload,看起来没有…

📅 2026/10/4 12:31:58
MORE NEWS

更多资讯

📰

AI生成教材如何降低查重率?从根因到参数调优的完整方案

当AI开始承担教材初稿的撰写,最先撞上的往往不是写作能力,而是查重率这个硬指标。不少用AI生成教材的朋友都有过这种经历:明明每句话读起来通顺正常,丢进查重系统一跑,重复率直奔三四十甚至更高。这里要明确一个前提&a…

📰

设备保养不是换油擦灰,做到真正有效还差这4步

设备保养最让人头疼的是什么? 不是没人干,而是保养天天做,设备照样坏。 润滑油按时换了,设备表面擦干净了,螺丝也拧紧了,保养记录一张没少。结果没过几天,轴承又发热、皮带又打滑,同…

📰

数据结构的基础笔记

文章目录1.数据排序1.1 简单排序1.2.1 冒泡排序1.2.2选择排序1.2.3插入排序1.2高级排序1.2.1希尔排序1.2.2归并排序1.2.2.1 递归快速排序1.数据排序 1.1 简单排序 Comparable接口 1.2.1 冒泡排序 是一种稳定排序方法! 1.比较相邻的元素。如果前一个元素比后一个元素大&…

📰

C++模板元编程:编译期类型计算与零开销抽象实战

1. 这不是“写代码”,是在编译期“造机器”——C模板元编程到底在干什么?很多人第一次听说“C模板元编程”,脑子里浮现的可能是“晦涩”“难懂”“只有编译器开发者才碰的东西”。但事实恰恰相反:它早已悄悄跑在你每天用的std::ve…

📰

Spring Boot 3.5.16 自带的 Tomcat 10.1.55 中了哪些 CVE?其中一条是修上一个漏洞时带进来的

文中的数字都是 2026-10-13 读到的。GitHub 的审核状态和 Spring Boot 的版本会变,结论请以你看到这篇文章当天的实际情况为准。 先说结论 Tomcat 官方在 2026 年 8 月和 9 月各修了一批漏洞,共 22 条: 批次条数修复版8 月批109.0.121 / 10.1.58 / 11.0.259 月批(官方写 2026…

📰

MCP实战手记(十一):MCP接飞书,从机器人到事件订阅的三层深度接入

本文聚焦飞书三层接入(机器人Webhook/自建应用卡片/长连接事件订阅)钉钉横向对比。0. 开篇:为什么从飞书开始 CSDN上"飞书对接"的实战文不少,但"飞书长连接事件订阅MCP双向闭环"的完整跑通几乎空白。飞书开放…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬