【问题标题】:openpyxl - How to use column number instead of letter?openpyxl - 如何使用列号而不是字母?
【发布时间】:2019-07-22 19:23:11
【问题描述】:

我正在寻找一种使用 openpyxl 从 xlsx 读取单个列的方法,并在此页面上找到了一些东西(第一个答案):openpyxl - read only one column from excel file in python?

但是这段代码有一个问题:你不能在“Z”的右边输入列,因为程序认为(例如,而不是“AD”列)这两个列是“A”和“D”的意思。有人知道如何解决这个问题吗?我感谢每一个答案(:

for row in range(4,sheet.max_row+1):  
    for column in 'E':
        cell_name = '{}{}'.format(column, row)
        val = sheet[cell_name].value

【问题讨论】:

  • 使用元组、列表或非字符串序列,即for column in ['E', 'AD', 'Z']:等?
  • 之前的答案是利用字符串是 sequence 字符这一事实,但显然如果您需要一个 2 个字符的标识符,例如“AD”,你不能利用它,你需要稍微修改一下方法。
  • 使用sheet['E']。涵盖在文档中。

标签: python excel for-loop openpyxl


【解决方案1】:

当您执行for column in 'AD': 时,实际上将'AD' 拆分为'A''D'column 将在迭代中代表其中的每一个。

如果你想做你应该做的列名:

for column in ('A', 'E', 'AD', 'AZ', 'CC', ...): # etc for all your desired columns
        cell_name = '{}{}'.format(column, row)
        val = sheet[cell_name].value

如果您只是想要数字参考,请使用sheet.cell(row, col).value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多