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

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

目录
相关文章
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
293 10
|
1月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
3月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
188 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
3月前
|
Java BI API
Java Excel报表生成:JXLS库的高效应用
在Java应用开发中,经常需要将数据导出到Excel文件中,以便于数据的分析和共享。JXLS库是一个强大的工具,它基于Apache POI,提供了一种简单而高效的方式来生成Excel报表。本文将详细介绍JXLS库的使用方法和技巧,帮助你快速掌握Java中的Excel导出功能。
109 6
|
2月前
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
99 0
|
4月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
83 2
|
4月前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
85 1
|
4月前
|
数据采集 存储 数据处理
从网络请求到Excel:自动化数据抓取和保存的完整指南
本文介绍了如何使用Python自动化采集东方财富股吧的发帖信息,并将其保存到Excel中。通过代理IP、多线程和网页解析技术,规避反爬虫机制,高效抓取帖子标题和发帖时间,帮助投资者获取市场情绪和热点数据。
|
4月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
97 4
|
27天前
|
机器学习/深度学习 人工智能 运维
基于AI的自动化事件响应:智慧运维新时代
基于AI的自动化事件响应:智慧运维新时代
100 11

热门文章

最新文章