当前位置: 首页 > news >正文

如何使用 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:D8

fromspire.xlsimport*# 加载 Excel 工作簿workbook=Workbook()workbook.LoadFromFile("input.xlsx")# 获取第一个工作表sheet=workbook.Worksheets[0]# 指定原始区域和转置后的位置source_range=sheet.Range["A1:A4"]dest_range=sheet.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_range=sheet.Range["A1:D1"]dest_range=sheet.Range["F1:F4"]source_range.Copy(dest_range,CopyRangeOptions.Transpose)

此时,1 × 4的横向区域会转置成4 × 1的纵向区域。

转置也不限于单行或单列,同样可以处理包含多行多列的区域。例如,将A1:C4转置到E1:H3

source_range=sheet.Range["A1:C4"]dest_range=sheet.Range["E1:H3"]source_range.Copy(dest_range,CopyRangeOptions.Transpose)

原来的区域为4 × 3,转置后会变成3 × 4

方法 2:使用 TRANSPOSE 函数转置 Excel 数据

如果希望转置后的数据继续跟随原单元格中的内容变化,可以使用 Excel 的TRANSPOSE函数。

Spire.XLS for Python 可以通过FormulaArray属性为一个单元格区域设置数组公式。

例如,下面的代码使用TRANSPOSEA2:A4中的数据转置到A10:C10

fromspire.xlsimport*# 加载 Excel 工作簿workbook=Workbook()workbook.LoadFromFile("Sample.xlsx")# 获取第一个工作表sheet=workbook.Worksheets[0]# 在 A10:C10 中设置 TRANSPOSE 数组公式dest_range=sheet.Range["A10:C10"]dest_range.FormulaArray="=TRANSPOSE(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 可以减少手动操作并减少人工操作导致的错误。

http://www.jsqmd.com/news/1397258/

相关文章:

  • AI Agent 幻觉根治思路:从模型层、记忆层、规划层三层降噪设计
  • 闰年判断:从历法原理到多语言代码实现的完整指南
  • 网易云音乐的NCM文件打不开?一条命令完成NCM转换,我实测只花了3分钟
  • 时间序列预测实战:从SARIMA到XGBoost的销售额预测全流程
  • 【原创唯一】基于微信小程序+uni-app+vue的个人博客小程序 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • 元初混沌体系架构 第二卷 第五十七篇 黑障区间动态信号重构恢复算法
  • Git合并冲突解决:从分支策略到实战操作全指南
  • 网易云NCM怎么转MP3?免费工具ncmdump让你三分钟解锁本地音乐
  • VSCode集成终端自动激活Anaconda虚拟环境配置指南
  • Dell G15散热控制如何告别AWCC?开源替代方案完整实战指南
  • 质粒提取实验
  • 正文写了三千字,AI却只引用开头那60个字
  • 2026年想在成都注册软件公司?这些要点你不能错过! - 企业推荐官
  • 从代码补全到AI智能体:Codex、Claude Code与Pi的技术演进与选型指南
  • 品牌 TVC 多媒介适配的 AIGC 技术管线:从画幅适配到视觉参数控制
  • 《贾子理论总论》考试答案及《文明哲学总论》正式试卷
  • 【原创唯一】基于SpringBoot+Vue的个人博客网站系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • 告别官方臃肿软件:这款开源笔记本控制工具箱,轻松搞定性能与续航
  • 从亚太数模竞赛一等奖看项目规划与团队协作的实战方法论
  • 华为MetaERP 业界常说的“SAP PA“在工程上其实是指 SAP Project System(PS)与 FI/CO 的深度融合,SAP 并没有一个叫“PA“的独立子模块;而 Oracle EB
  • 元初混沌体系架构 第二卷 第五十八篇 超高温鞘层电磁屏蔽破解模型
  • 数据资产化难落地?企业数据价值转化核心痛点有哪些?
  • Windows消息模拟:PostMessage与SendMessage失效与重复按键的深度解析
  • 付费投放怎么做?全域流量运营的破局思路,抖音投放/千川投放/本地推投放/短视频代运营/小红书投放,付费投放公司口碑推荐 - 企业权威推荐大使
  • 嵌入式开发调试实战:Keil仿真与示波器协同定位波形问题
  • 同步与异步FIFO IP核功能测试详解
  • 华为MetaERP Oracle EBS vs Oracle Fusion vs SAP:预算执行与预算控制全景对比先给结论:三套系统的核心设计哲学高度一致——“承诺前置、分层占用、发票转实际、付款
  • 2026年成都股权激励咨询平台大揭秘,哪家才是行业优选? - 企业推荐官
  • Python数据可视化配色全攻略:从Matplotlib到Seaborn与Plotly
  • 2026晋城卫浴批发推荐:本地品质建材选购指南 - 谁都没有我好看