实现数字到Excel中列序号的转换
创始人
2024-05-14 07:02:32
0

关键字PythonExcelChatGPT的代码

最近的工作中,涉及到有关处理表格的操作,经常用到数字和Excel中列序号的转化功能。
对应关系如下:

    列序号:A B ... Z      AA AB ... AZ      BA BB ... BZ列数字:1 2 ... 26     27 28 ... 52      53 54 ... 78

经过分析和验证测试,我就自己写了一个从数字到列序号(字母)的转换函数,如下:

def convert_number_to_excel_column_letter(col_num):"""把给定的列数字转换为Excel中对应的列序号(字母名称),如:1 => A, 2 => B。以下为Excel中列数字和列序号之间的对应关系:列序号:A B ... Z      AA AB ... AZ      BA BB ... BZ列数字:1 2 ... 26     27 28 ... 52      53 54 ... 78:param col_num:列数字:return: Excel中的列序号(字母名称)"""repeat_span_num = 26 # 一个循环跨度if col_num < 1:col_num = 1high = (col_num-1) // repeat_span_numlow = col_num - high * repeat_span_num# print("high =", high, ", low =", low)result = chr(ord('A') + low - 1)if high > 0:result = convert_number_to_excel_column_letter(high) + result# print(col_num, "=>", result)return result# Example usage
print(convert_number_to_excel_column_letter(1))  # Output: "A"
print(convert_number_to_excel_column_letter(27))  # Output: "AA"
print(convert_number_to_excel_column_letter(28))  # Output: "AB"
print(convert_number_to_excel_column_letter(53))  # Output: "BA"
print(convert_number_to_excel_column_letter(1000))  # Output: "ALL"

下面是ChatGPT回答\color{#0000FF}{下面是ChatGPT回答}下面是ChatGPT回答

提问:用Python实现如下功能:输入一个数字,返回Excel中对应列的字母序号。

ChetGPT:

import stringdef number_to_column(n):"""Convert a number to the corresponding column letter in Excel"""column = ""while n > 0:n -= 1column = string.ascii_uppercase[n % 26] + columnn //= 26return column# Example usage
print(number_to_column(1))  # Output: "A"
print(number_to_column(27))  # Output: "AA"
print(number_to_column(28))  # Output: "AB"
print(number_to_column(53))  # Output: "BA"
print(number_to_column(1000))  # Output: "ALL"

说明:
1、首先将数字 n-1 是因为 Excel 中第一列是 A 而不是 0。
2、然后,我们使用字符串模块中的 ascii_uppercase 常量,该常量包含大写字母。
3、接下来,我们在每次循环中使用 n % 26 获取当前位置的字母,并将其附加到 column 字符串的开头。
4、最后,我们使用 n //= 26 更新 n 的值,以便下一次循环使用。

测试发现,ChatGPT给的代码完全没有问题。甚至比我的代码更加简洁!不得不说,ChatGTP还是很厉害的!

相关内容

热门资讯

深南电A涨2.13%,成交额1... 4月21日,深南电A盘中上涨2.13%,截至09:36,报8.14元/股,成交1101.00万元,换...
南宁百货跌2.06%,成交额3... 4月21日,南宁百货盘中下跌2.06%,截至09:39,报5.70元/股,成交3526.22万元,换...
山东加快建设传染病监测预警与应...   近日,山东省疾病预防控制局、山东省卫生健康委员会等10部门联合下发《山东省建立健全智慧化多点触发...
慧博云通跌2.02%,成交额7... 4月21日,慧博云通盘中下跌2.02%,截至09:37,报26.21元/股,成交7181.53万元,...
中信海直涨2.02%,成交额8... 4月21日,中信海直盘中上涨2.02%,截至09:45,报21.76元/股,成交8500.75万元,...
金逸影视涨2.41%,成交额7... 4月21日,金逸影视盘中上涨2.41%,截至09:41,报7.66元/股,成交744.62万元,换手...
新中港涨2.55%,成交额87... 4月21日,新中港盘中上涨2.55%,截至09:35,报7.63元/股,成交874.66万元,换手率...
ETF资金榜 | 科创综指ET...        2025年4月18日,科创综指ETF招商(589770.SH)收跌0.43%,成交37...
常宝股份涨2.03%,成交额1... 4月21日,常宝股份盘中上涨2.03%,截至09:40,报5.53元/股,成交1519.28万元,换...
中信证券:电价机制改善刺激投资... 转自:财联社【中信证券:电价机制改善刺激投资 抽水蓄能步入扩张周期】财联社4月21日电,中信证券指出...
永贵电器大涨5.78%,成交额... 4月21日,永贵电器盘中上涨5.78%,截至09:35,报17.20元/股,成交1.49亿元,换手率...
包钢股份涨2.84%,成交额2... 4月21日,包钢股份盘中上涨2.84%,截至09:35,报1.81元/股,成交2.55亿元,换手率0...
内需崛起,港股通科技ETF(5... 消息面上,国务院新闻办公室将于2025年4月21日(星期一)下午3时举行新闻发布会,请商务部副部长兼...
同兴科技涨2.08%,成交额4... 4月21日,同兴科技盘中上涨2.08%,截至09:37,报16.20元/股,成交4806.58万元,...
中研股份4月18日获融资买入2... 4月18日,中研股份跌0.88%,成交额3864.76万元。两融数据显示,当日中研股份获融资买入额2...
A50ETF(159601)开... 4月21日,A50ETF(159601)开盘跌0.25%,报0.802元。A50ETF(159601...
海尔智家4月18日获融资买入3... 4月18日,海尔智家跌0.41%,成交额6.22亿元。两融数据显示,当日海尔智家获融资买入额3924...
航宇科技大涨5.03%,成交额... 4月21日,航宇科技盘中上涨5.03%,截至09:35,报41.80元/股,成交2712.01万元,...
赛意信息涨2.26%,成交额7... 4月21日,赛意信息盘中上涨2.26%,截至09:46,报27.62元/股,成交7180.20万元,...
何以中国|这山这水这锅气,武夷... 来武夷山,漫步在国家森林公园的苍翠秘境,晨雾中传来竹筏划破九曲溪的潺潺水声;探访大安村,红军礼堂的斑...