python报表自动化系列 - 译码:将纯数字译码为Excel列坐标的字母索引表示形式

简介: python报表自动化系列 - 译码:将纯数字译码为Excel列坐标的字母索引表示形式

python译码器

将纯数字译码为Excel列坐标的字母索引表示形式(特殊的二十六进制)

李俊才

邮箱:291148484@163.com

【内容概述】

译码在一定程度上相当于查字典。对于简单的编码,可以通过穷举法将一种字符编码与另外一种字符编码进行对应,只要将对应的字符以一定的形式返回即可。

本文介绍一种在不断试验中进行译码的方法。简而言之,就是先通过“测试法”,获得译码完成后字母的位数,再由高往低逐位通过“测试法”获得该位的值。

【代码实现】

def num_to_Letter(num):
    bit = 1
    i = 1
    a = 0
    x = int(num) - 26**(bit-i)
    Letter = ''
    if x < 0:
        raise ValueError('error:列坐标索引的数值表示必须为一个正整数')
    if  num - 26**(bit-i) == 0:
        return 'A'
    x = num
    while x >= 0:
        if x == 0:
            a = 1            #标志位置1,表示由全A构成
        x = x - 26**(bit - i)
        i = i-1
    if a == 1:
        for k in range(abs(i)):
            Letter = Letter + 'A'
        return Letter
    Num_of_letters = abs(i)
    D = {1:'A',2:'B',3:'C',4:'D',5:'E',6:'F',7:'G',8:'H',
         9:'I',10:'J',11:'K',12:'L',13:'M',14:'N',15:'O',16:'P',
         17:'Q',18:'R',19:'S',20:'T',21:'U',22:'V',23:'W',24:'X',
         25:'Y',26:'Z',}
    alist = []
    #从最高位开始逐个确定字母
    for k in range(Num_of_letters+1):
        if k != 0:
            alist = [k] + alist
    #print('alist:',alist)
    n = num
    for k in alist:        # k 为从高位向低位的第k个字母
        i = k
        j = 1              # 用于得到 j X (26)的i次方的数字k,再将k由数字映射为字母
        while (n - j*(26**(i-1))) > 0:
            j = j + 1
        j = j - 1
        n = n - j*(26**(i-1))
        u = j
        if k == 1:
            u = u+1
        Letter = Letter + D.get(u)
    return Letter

【小结】

在Excel报表自动化实践中,该方法是很常用的。

代码供大家参考,转载请指明出处。

目录
打赏
0
1
1
0
332
分享
相关文章
|
3月前
|
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
252 61
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
218 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
166 3
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
91 1
|
5月前
|
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
55 1
|
5月前
|
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
91 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等