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

【调用实例】

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

目录
相关文章
|
5月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
602 0
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
2370 10
|
8月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
219 4
|
Python
使用OpenPyXL库实现Excel单元格其他对齐方式设置
本文介绍了如何使用Python的`openpyxl`库设置Excel单元格中的文本对齐方式,包括文本旋转、换行、自动调整大小和缩进等,通过具体示例代码展示了每种对齐方式的应用方法,适合需要频繁操作Excel文件的用户学习参考。
665 85
使用OpenPyXL库实现Excel单元格其他对齐方式设置
|
11月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
275 20
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
1242 61
自动化微信朋友圈:Python脚本实现自动发布动态
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1116 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
机器学习/深度学习 存储 数据可视化
这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
本书介绍了如何将Python与Excel结合使用,以提升数据分析和处理效率。内容涵盖Python入门、pandas库的使用、通过Python包操作Excel文件以及使用xlwings对Excel进行编程。书中详细讲解了Anaconda、Visual Studio Code和Jupyter笔记本等开发工具,并探讨了NumPy、DataFrame和Series等数据结构的应用。此外,还介绍了多个Python包(如OpenPyXL、XlsxWriter等)用于在无需安装Excel的情况下读写Excel文件,帮助用户实现自动化任务和数据处理。
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。

推荐镜像

更多