python报表自动化系列 - Excel单元格(Cell)索引范围对应的所有单元格

简介: python报表自动化系列 - Excel单元格(Cell)索引范围对应的所有单元格

获取指定起止索引内所有的Excel单元格索引

李俊才

【调用其他函数】

【函数说明】

定义函数的两个形参C_begin与C_end分别代表起止的单元格。实际上在本函数中起始单元格C_begin与结束单元格C_end之间并没有什么本质区别,对于任意两个单元格(如C_begin = “A1”、C_begin = “B3”)都可以表示一个单元格范围(range),哪怕C_begin与C_end是同一个单元格(这是表示的范围内只包含一个单元格)。本函数要返回的内容就是所有这样的单元格的Excel索引值,我们把所有的这些值插入到一个列表,返回的形式就是一个包含了范围内所有这些单元格的列表。

我们可以发现,只要给出起止单元格,在这个范围内表示的区域永远是一个矩形区域。以(C2,E3)为例,如图所示:

在该范围内:r_min = 2,r _max = 3 行的范围为2到3

c_min = 3,c _max = 5 列的范围为3到5

因此在该范围内:包含的行序号为3、4、5

包含的列序号为2、3

这实际上是一个组合问题,由数学知识知该范围内一共有

个单元格,只需要用循环以此插入列表即可。

【代码实现】

#将Excel单元格(Cell)索引范围对应的所有单元格插入一个列表并返回函数
def Excel_range_to_list(C_begin,C_end):
    Cells_list = []
    #先得到该范围行的限定位置,为数字范围值
    r_1 = Cell_A1to11(C_begin)[0]      #起始单元格的十进制数坐标的行
    r_2 = Cell_A1to11(C_end)[0]        #终止单元格的十进制数坐标的行
    #按照大小调整行起止的先后
    if r_1 >= r_2:
        r_max = r_1
        r_min = r_2
    else:
        r_max = r_2
        r_min = r_1
    #将范围内所有的行的数字序号插入行列表
    r_list = []
    while r_min <= r_max:
        r_list.append(r_min)
        r_min = r_min + 1
    #同理,再得到该范围列的限定位置,也被转化为数值范围值
    c_1 = Cell_A1to11(C_begin)[1]     #起始列
    c_2 = Cell_A1to11(C_end)[1]       #终止列
    #调整列大小顺序
    if c_1 >= c_2:
        c_max = c_1
        c_min = c_2
    else:
        c_max = c_2
        c_min = c_1
    #将范围内所有的列的数字序号插入列列表
    c_list = []
    while c_min <= c_max:
        c_list.append(c_min)
        c_min = c_min + 1
    #定义翻译字典,由数字索引对应Excel列的字母
    Decimal = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
    Hexadecimal = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    E = dict(zip(Decimal,Hexadecimal))
    #将列中所有的数字翻译为对应的字母,但要注意,对于字母所表示的列,可能出现数字大于26的情况,即索引在“Z”后
    Excclist = []
    for num in c_list:
        # 调用我的特殊二十六进制转换函数
        x = num_to_Letter(num)
        Excclist.append(x)
    c_list = Excclist
    #使用for循环嵌套实现组合法
    for c in c_list:
        a_Cell = str(c)
        for r in r_list:
            rr = a_Cell
            rr = rr + str(r)
            Cells_list.append(rr)
    return Cells_list

【调用实例】

内容仅供参考,如需使用请注明出处。

目录
相关文章
|
10月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
768 0
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
10月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
972 7
|
10月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
826 0
|
开发工具 Python
使用Python和OpenAPI将云上的安全组规则填写入Excel
本文介绍如何通过Python脚本自动化获取阿里云安全组及其规则信息,并将结果导出为Excel表格。相比CLI命令行方式,Python实现更高效、便捷,适用于需要批量处理和交付的场景。
使用Python和OpenAPI将云上的安全组规则填写入Excel
|
11月前
|
人工智能 自然语言处理 数据可视化
别再用Excel死磕了!阿里云QBI+DataV才是政企报表的正确打开方式
阿里云Quick BI与DataV联合打造数据智能解决方案,覆盖数据分析、可视化及数字孪生全链路。QBI以智能分析驱动决策,DataV提供低代码可视化与三维孪生能力,助力政企高效实现数据驱动创新。
1102 0
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
319 4
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析,别再死磕Excel了!
Python数据分析,别再死磕Excel了!
531 2
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
421 20
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。

推荐镜像

更多