这是用于提供行和列ID时提供COLUMN名称的代码,但是当我提供like值时row = 1 and col = 104
,它应该返回CZ
,但返回D@
row = 1
col = 104
div = col
column_label = str()
while div:
(div, mod) = divmod(div, 26)
column_label = chr(mod + 64) + column_label
print column_label
我在做什么错了?
(此代码是EXCEL列的参考,在这里我提供了Row,Column ID值,并期望相同的ALPHABETIC值。)
编辑:我认为我必须承认,正如其他一些人(他们从未留下过我的评论)所指出的那样,我的答案的上一版本(您接受了)存在一个错误,该错误使其无法正确处理大于702
(对应于Excel列'ZZ'
)。因此,为了正确起见,以下代码已对其进行了修复,该代码现在像其他许多答案一样包含一个循环。
您很可能从未使用过具有足够大列号的先前版本来遇到此问题。FWIW,当前版本的Excel的MS规范说,它支持最多包含16,384列(Excel列'XFD'
)的工作表。
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def excel_style(row, col):
""" Convert given row and column number to an Excel-style cell name. """
result = []
while col:
col, rem = divmod(col-1, 26)
result[:0] = LETTERS[rem]
return ''.join(result) + str(row)
if __name__ == '__main__':
addresses = [(1, 1), (1, 26),
(1, 27), (1, 52),
(1, 53), (1, 78),
(1, 79), (1, 104),
(1, 18253), (1, 18278),
(1, 702), # -> 'ZZ1'
(1, 703), # -> 'AAA1'
(1, 16384), # -> 'XFD1'
(1, 35277039)]
print('({:3}, {:>10}) --> {}'.format('row', 'col', 'Excel'))
print('==========================')
for row, col in addresses:
print('({:3}, {:10,}) --> {!r}'.format(row, col, excel_style(row, col)))
输出:
(row, col) --> Excel
========================
( 1, 1) --> 'A1'
( 1, 26) --> 'Z1'
( 1, 27) --> 'AA1'
( 1, 52) --> 'AZ1'
( 1, 53) --> 'BA1'
( 1, 78) --> 'BZ1'
( 1, 79) --> 'CA1'
( 1, 104) --> 'CZ1'
( 1, 18253) --> 'ZZA1'
( 1, 18278) --> 'ZZZ1'
( 1, 702) --> 'ZZ1'
( 1, 703) --> 'AAA1'
( 1, 16384) --> 'XFD1'
( 1, 35277039) --> 'BYEBYE1'
我想要获取与列名相关的列值,如在policy no string中获取TXT_Policy_no等,因为excel工作表的值可以满足要求,所以我想要读取基于列名的值,以更加安全。 我的java代码:
问题内容: 我想阅读给应用于xlsx文档中单元格的样式的名称。我已经提取了文件,并且在xl / styles.xml中可以找到样式名称: 我想要的样式名称是“测试样式”。目前,我有以下代码,并且我可以获取xfId而不是名称: 有谁知道我是否可以用poi获得样式名称,以及我将如何进行? 如果这不可能,那么我可以基于xfId将背景颜色设为rgb吗? 问候 问题答案: 经过大量的挖掘,我找到了解决方案。
我想从excel表格中读取一组用户名和密码。我的用户名出现在第一列,但我的密码值出现在第8列。我不想通过给出第8列地址来读取第8列的值。相反,我想在excel工作表中的任何地方读取密码值。有什么办法可以做到这一点吗? FileInputStream fs=new FileInputStream(strReadFile); 工作簿wb=Workbook.getWorkbook fs; 工作簿sh=w
我正在尝试将我的VLOOKUP自动化为每周更新的数据表。目前我的VLOOKUP如下所示: 每周向表中插入两个新列(在最后一列之前)。新列中填充了新数据,我必须重新编写我的VLOOKUP。 我正在查找的列始终是倒数第三列、倒数第二列和倒数第三列。 有没有一种方法可以通过查找倒数第三、倒数第二和倒数第三列的函数来指定列索引号?我想这样我可以添加一个宏来完成这项工作。
问题内容: 为了进行一些统计分析,我需要在Excel工作表的列中提取值。我一直在使用Apache POI包从Excel文件中读取数据,当需要迭代行时,它可以很好地工作。但是我找不到关于在API(链接文本)或通过Google搜索获取列的任何信息。 由于我需要获取不同列的最大值和最小值并使用这些值生成随机数,因此,无需选择单个列,唯一的选择是遍历行和列以获取值并一一比较。听起来不那么省时。 关于如何解
在R中,当需要根据可以执行的列名称检索列索引时 有没有一种方法可以对熊猫数据帧执行相同的操作?