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报表自动化实践中,该方法是很常用的。

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

目录
相关文章
|
11月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
824 0
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
人工智能 自然语言处理 数据可视化
别再用Excel死磕了!阿里云QBI+DataV才是政企报表的正确打开方式
阿里云Quick BI与DataV联合打造数据智能解决方案,覆盖数据分析、可视化及数字孪生全链路。QBI以智能分析驱动决策,DataV提供低代码可视化与三维孪生能力,助力政企高效实现数据驱动创新。
1181 0
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
455 4
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
1761 61
自动化微信朋友圈:Python脚本实现自动发布动态
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
461 20
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
Java BI API
Java Excel报表生成:JXLS库的高效应用
在Java应用开发中,经常需要将数据导出到Excel文件中,以便于数据的分析和共享。JXLS库是一个强大的工具,它基于Apache POI,提供了一种简单而高效的方式来生成Excel报表。本文将详细介绍JXLS库的使用方法和技巧,帮助你快速掌握Java中的Excel导出功能。
855 6
|
数据采集 存储 监控
实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
本文介绍了如何使用Node.js和Puppeteer实现自动化数据抓取,特别是针对新闻网站“澎湃新闻”。通过设置代理IP、User-Agent和Cookie,提高爬虫的效率和隐蔽性,避免被网站封锁。代码示例展示了如何模拟鼠标点击、键盘输入等操作,抓取并整理新闻数据,适用于需要规避IP限制和突破频率限制的场景。
923 10
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。

推荐镜像

更多