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

【调用实例】

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

目录
相关文章
|
3月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
266 61
|
5天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
14天前
|
存储 数据采集 数据格式
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
35 1
|
2月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
106 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
91 3
|
10月前
|
BI 索引 Python
python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
64 1
|
7天前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
7天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
7天前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
8天前
|
数据采集 搜索推荐 C语言
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化和调试技巧,涵盖使用内置函数、列表推导式、生成器、`cProfile`、`numpy`等优化手段,以及`print`、`assert`、`pdb`和`logging`等调试方法。通过实战项目如优化排序算法和日志记录的Web爬虫,帮助你编写高效稳定的Python程序。

热门文章

最新文章