使用Python 在Excel中创建和取消数据分组 - 详解

目录

使用工具

Python在Excel中创建行和列分组

Python在Excel中创建嵌套分组

Python获取Excel中的行和列的大纲级别

Python展开或折叠Excel中的分组

Python在Excel中创建分类汇总

Python取消Excel中的行和列分组


Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能。当分组完成后,用户可以通过折叠或展开数据组来简化数据视图。这种功能特别适用于包含多层次结构的数据,或者需要隐藏部分数据以便专注于特定内容的场景。这篇博客将介绍如何使用Python在Excel中创建或取消数据分组,主要涵盖以下内容:

  • Python在Excel中创建行和列分组
  • Python在Excel中创建嵌套分组
  • Python获取Excel中的行和列的大纲级别
  • Python展开或折叠Excel中的分组
  • Python在Excel中创建分类汇总
  • Python取消Excel中的行和列分组

使用工具

在Python中,可以使用Spire.XLS for Python库来实现在Excel中创建和取消数据分组。

Spire.XLS for Python主要用于在Python应用程序中创建、读取、编辑和转换Excel文件。它可以处理多种电子表格格式,包括XLS、XLSX、XLSB、XLSM和ODS等。此外,还可以将Excel文件转换为其他文件格式,如PDF、HTML、CSV、文本、图像、XML、SVG、ODS、PostScript和XPS。

你可通过在终端运行以下命令来安装Spire.XLS for Python:

pip install Spire.Xls

Python在Excel中创建行和列分组

Spire.XLS for Python提供了Worksheet.GroupByRows()Worksheet.GroupByColumns()方法,分别用于对Excel工作表中的行和列的数据进行分组。

这些方法的参数如下:

  • 分组的起始行或起始列的索引。
  • 分组的结束行或结束列索引。
  • 是否折叠分组,True表示折叠,False表示展开。

下面是使用Python对Excel工作表中的行和列进行分组的实现代码:

from spire.xls import *

# 打开一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("数据.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 分组第2-6行
sheet.GroupByRows(2, 6, False)

# 分组第2-3列
sheet.GroupByColumns(2, 3, False)

# 保存结果文件
workbook.SaveToFile("创建分组.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python在Excel中创建嵌套分组

嵌套分组是指将一个分组嵌套在另一个分组之内,从而形成多层次的数据结构。例如,在销售数据中,可以按“地区”分组,然后在每个地区内再按“销售人员”进行分组。这样,数据的组织结构更加清晰,并且便于分析。

要在Excel工作表中创建嵌套行或列分组,可以通过多次使用Worksheet.GroupByRows()Worksheet.GroupByColumns()方法来实现。

下面是使用Python在Excel工作表中创建嵌套行分组的实现代码:

from spire.xls import *

# 打开一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("数据.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 分组第2-11行
sheet.GroupByRows(2, 11, False)

# 在以上分组中创建嵌套分组
sheet.GroupByRows(2, 6, False)

# 保存结果文件
workbook.SaveToFile("创建嵌套分组.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python获取Excel中的行和列的大纲级别

工作表中行或列的默认大纲级别为0,表示该行列当前未分组。每次分组时,大纲级别会相应地增加1。通过使用Worksheet.Range[].RowGroupLevelWorksheet.Range[].ColumnGroupLevel属性,可以获取特定行或列的大纲级别。

下面是获取Excel工作表中特定行和列的大纲级别的实现代码:

from spire.xls import *

# 打开一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("创建分组.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 获取特定行和列的大纲级别
row_outline_level = sheet.Range["A2"].RowGroupLevel
col_outline_level = sheet.Range["C1"].ColumnGroupLevel

# 打印大纲级别
print(f"单元格A2的行大纲级别:{row_outline_level}")
print(f"单元格C1的列大纲级别:{col_outline_level}")

workbook.Dispose()

Python展开或折叠Excel中的分组

要展开或折叠Excel工作表中的分组数据,可以使用Worksheet.Range[].ExpandGroupWorksheet.Range[].CollapseGroup方法,前者用于展开分组,后者用于折叠分组。

下面是使用Python在Excel中展开或折叠分组数据的实现代码:

from spire.xls import *

# 打开一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("创建分组.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 折叠指定单元格区域内的分组行
sheet.Range["A2:C6"].CollapseGroup(GroupByType.ByRows)
# 或者展开指定单元格区域内的分组行
# sheet.Range["A2:C6"].ExpandGroup(GroupByType.ByRows)

# 折叠指定单元格区域内的分组列
sheet.Range["B1:C11"].CollapseGroup(GroupByType.ByColumns)
# 或者展开指定单元格区域内的分组列
# sheet.Range["B2:C11"].ExpandGroup(GroupByType.ByColumns)

# 保存结果文件
workbook.SaveToFile("折叠分组.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python在Excel中创建分类汇总

Excel中的SUBTOTAL函数允许用户对数据进行分组并自动执行特定的分类汇总操作,如求和、计数、平均值、乘积和最大值。

在Spire.XLS中,可以使用Worksheet.Subtotal()方法为数据添加分类汇总。该方法的参数如下:

  • 数据区域:指定需要进行分类汇总的单元格区域。
  • 分组依据:按哪一列的索引对数据进行分组。
  • 汇总列:需要进行汇总计算的列索引列表。
  • 汇总类型:选择用于计算分类汇总的函数类型,例如求和 (Sum)、计数 (Count) 等。
  • 替换现有汇总:是否替换当前分类汇总,True 表示替换,False 表示保留。
  • 插入分页符:是否每组数据分页,True 表示分页,False 表示不分页。
  • 显示位置:是否将汇总显示在数据下方,True 表示显示在下方,False 表示显示在上方。

下面是使用Python为Excel工作表中指定数据区域添加分类汇总的实现代码:

from spire.xls import *

# 打开一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("数据.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 为指定的数据区域创建分类汇总
cell_range = sheet.Range["A2:C11"]
sheet.Subtotal(cell_range, 0, [2], SubtotalTypes.Sum, True, False, True)

# 保存结果文件
workbook.SaveToFile("添加分类汇总.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python取消Excel中的行和列分组

虽然分组功能有利于查看特定数据,但有时候需要取消分组以便查看整个数据集。

要取消Excel工作表中的分组,可以使用Worksheet.UngroupByRows()Worksheet.UngroupByColumns()方法,前者用于取消行分组,后者用于取消列分组。

下面是使用Python取消Excel工作表中的行和列分组的实现代码:

from spire.xls import *

# 打开一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("创建分组.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 取消分组第2-6行
sheet.UngroupByRows(2, 6)

# 取消分组第2-3列
sheet.UngroupByColumns(2, 3)

# 保存结果文件
workbook.SaveToFile("取消分组.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

以上就是使用Python在Excel中创建和取消数据分组的全部内容。感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/921336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java Springboot高校会议室预订管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

基于 NCD 与优化函数结合的非线性优化 PID 控制

基于 NCD 与优化函数结合的非线性优化 PID 控制 1. 引言 NCD(Normalized Coprime Factorization Distance)优化是一种用于非线性系统的先进控制方法。通过将 NCD 指标与优化算法结合,可以在动态调整控制参数的同时优化控制器性能。此方法特别…

数据库表设计范式

华子目录 MYSQL库表设计:范式第一范式(1NF)第二范式(2NF)第三范式(3NF)三范式小结巴斯-科德范式(BCNF)第四范式(4NF)第五范式(5NF&…

中国省级新质生产力发展指数数据(任宇新版本)2010-2023年

一、测算方式:参考C刊《财经理论与实践》任宇新(2024)老师的研究,新质生产力以劳动者劳动资料劳动对象及其优化组合的质变为 基本内涵,借 鉴 王 珏 和 王 荣 基 的 做 法构建新质生产力发展水平评价指标体系如下所示&a…

【爬虫】Firecrawl对京东热卖网信息爬取(仅供学习)

项目地址 GitHub - mendableai/firecrawl: 🔥 Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API. Firecrawl更多是使用在LLM大模型知识库的构建,是大模型数据准备中的一环(在…

Admin.NET框架前端由于keep-alive设置缓存导致的onUnmount未触发问题

bug版本:next分支,基于.NET6版本; 问题描述: 1、添加keep-alive后,在其下运行的组件会出现onActived(被关注时)和onDeactived(取消关注时)生命周期,而组件原有生命周期为onMounted(被创造时)和onUnmounted(…

机器学习day7-线性回归3、逻辑回归、聚类、SVC

7欠拟合与过拟合 1.欠拟合 模型在训练数据上表现不佳,在新的数据上也表现不佳,常发生在模型过于简单无法处理数据中的复杂模式时。 特征: 训练误差较高 测试误差也高 模型过于简化,不能充分学习训练数据中的模式 2.过拟合 …

【鸿蒙开发】第二十二章 IPC与RPC进程间通讯服务

目录 1 IPC与RPC通信概述 2 实现原理 3 约束与限制 4 使用场景 5 开发步骤 5.1 Native侧开发步骤 5.2 ArkTS侧开发步骤 6 远端状态订阅开发实例 6.1 使用场景 6.1.1 Native侧接口 6.2 ArkTS侧接口 6.3 Stub感知Proxy消亡(匿名Stub的使用) 1 …

【开发小技巧11】用经典报表实现badge list效果,根据回显内容用颜色加以区分

之前使用badge list实现首页指标数据回显,但是无法根据对应数据进行个性化动态展示,那要如何解决呢?下面就来看看如何通过经典报表实现badge list效果,根据回显内容用颜色加以区分。 普通经典报表 想要做成类似这样的效果并且能…

rust中解决DPI-1047: Cannot locate a 64-bit Oracle Client library问题

我们在使用rust-oracle crate连接oracle进行测试的过程中,会发现无法连接oracle,测试运行过程中抛出“DPI-1047: Cannot locate a 64-bit Oracle Client library”错误。该问题是由于rust-oracle需要用到oracle的动态连接库,我们通过安装orac…

cocos creator 3.8 一些简单的操作技巧,材质的创建 1

这是一个飞机的3D模型与贴图 导入到cocos中,法线模型文件中已经包含了mesh、material、prefab,也就是模型、材质与预制。界面上创建一个空节点Plane,将模型直接拖入到Plane下。新建材质如图下 Effect属性选择builtin-unlit,不需…

python oa服务器巡检报告脚本的重构和修改(适应数盾OTP)有空再去改

Two-Step Vertification required: Please enter the mobile app OTPverification code: 01.因为巡检的服务器要双因子认证登录,也就是登录堡垒机时还要输入验证码。这对我的巡检查服务器的工作带来了不便。它的机制是每一次登录,算一次会话…

数据集-目标检测系列- 荷花 莲花 检测数据集 lotus>> DataBall

数据集-目标检测系列- 荷花 莲花 检测数据集 lotus>> DataBall DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项…

操作系统——揭开盖子

计算机执行时——取指执行 es:bx等于从0x9000开始,到0x90200结束

CTF 攻防世界 Web: SSRF Me write-up

题目名称-SSRF ME captcha 解码 目录扫描没有发现有用结果,根据提示 url 可能用来访问内部资源,根据题目名称可以猜测 ssrf。 其中 Captcha 用到 md5 加密截取,而且在每一次刷新网页时候会改变,可以写代码爆力枚举 Captcha 的值…

医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室

医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室 语义分割网络FCN:通过将全连接层替换为卷积层并使用反卷积上采样,实现了第一个端到端的像素级分割网络U-Net:采用对称的U形编解码器结构&#xff…

WPF窗体基本知识-笔记-命名空间

窗体程序关闭方式 命名空间:可以理解命名空间的作用为引用下面的控件对象 给控件命名:一般都用x:Name,也可以用Name但是有的控件不支持 布局控件(容器)的类型 布局控件继承于Panel的控件,其中下面的border不是布局控件,panel是抽象类 在重叠的情况下,Zindex值越大的就在上面 Z…

pytorch官方FasterRCNN代码详解

本博文转自捋一捋pytorch官方FasterRCNN代码 - 知乎 (zhihu.com),增加了其中代码的更详细的解读,以帮助自己理解该代码。 代码理解的参考Faster-RCNN全面解读(手把手带你分析代码实现)---前向传播部分_手把手faster rcnn-CSDN博客 1. 代码结构 作为 to…

大数运算(加减乘除和输入、输出模块)

为什么会有大数呢?因为long long通常为64位范围约为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,最多也就19位,那么超过19位的如何计算呢?这就引申出来大数了。 本博客适合思考过这道题,但是没做出来或…

Excel的图表使用和导出准备

目的 导出Excel图表是很多软件要求的功能之一,那如何导出Excel图表呢?或者说如何使用Excel图表。 一种方法是软件生成图片,然后把图片写到Excel上,这种方式,因为格式种种原因,导出的图片不漂亮&#xff0c…