当前位置:  开发笔记 > 编程语言 > 正文

如何在openpyxl中使用字段名称或列标题?

如何解决《如何在openpyxl中使用字段名称或列标题?》经验,为你挑选了1个好方法。



1> Mike Müller..:

编辑

假设这些是您要查找的标题名称:

colnames = ['Header1', 'Header2', 'Header3']

找到这些列的索引:

col_indices = {n for n, cell in enumerate(sheet.rows[0]) if cell.value in colnames}

现在迭代剩余的行:

for row in sheet.rows[1:]:
    for index, cell in enumerate(row):
         if index in col_indices:
             if cell.value.upper() == 'OldValue1':
                  cell.value = 1
                  print(cell.value)
             elif cell.value.upper() == 'OldValue2':
                 cell.value = 2
                 print(cell.value)

使用字典而不是集合来保持列名称:

col_indices = {n: cell.value for n, cell in enumerate(sheet.rows[0]) 
               if cell.value in colnames}

for row in sheet.rows[1:]:
    for index, cell in enumerate(row):
        if index in col_indices:
            print('col: {}, row: {}, content: {}'.format(
                   col_indices[index], index, cell.value))
            if cell.value.upper() == 'OldValue1':
                 cell.value = 1
            elif cell.value.upper() == 'OldValue2':
                 cell.value = 2

老答案

这使您的if陈述更短:

if cellObj.column in 'HILM':
    print(cellObj.value),

对于多字母列坐标,您需要使用列表:

if cellObj.column in ['H', 'AA', 'AB', 'AD']:
    print(cellObj.value),

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有