ImportError: cannot import name get_column_letter

ImportError: cannot import name get_column_letter

我可以在我的代码中使用 openpyxl 作为导入。但是当我尝试执行以下操作时:

from openpyxl.cell import get_column_letter 

我收到以下错误:

ImportError: cannot import name get_column_letter

我正在使用 python 2.7。我已经使用 easy_install 安装了它。尝试搜索此问题,但找不到任何相关内容。

函数 get_column_letter 已在 Openpyxl 2.4 版中从 openpyxl.cell 重新定位到 openpyxl.utils

当前导入为:from openpyxl.utils import get_column_letter

如果您不知道最终用户使用的是哪个版本,可以使用以下代码:

try: 
    from openpyxl.cell import get_column_letter
except ImportError:
    from openpyxl.utils import get_column_letter

我遇到了同样的问题,我使用 "python setup.py install" 重新安装了 the latest openpyxl。然后就可以了。

tl;dr Python3

  • pip3 install Cython
  • pip3 install pandas


Abbas 或 Jael Woo 的其他两个解决方案都不适合我 Python3。

我最终使用了 apt-get install python3-pandas,但是后来 pip3 install pandas 失败了,因为它说我需要 Cython,正如它在 Pandas installation docs 中提到的那样,它是一个 "optional dependency"无论如何。

话虽如此,我 运行 pip3 install Cython 然后 运行 pip3 install pandas,它起作用了。


注意:Cython 和 Pandas 在 Ubuntu 上安装需要一段时间(不确定 EC2 的 Ubuntu 版本)但在 Mac 10.11.5

上似乎要快得多

编辑:使用 apt-get 安装 Pandas 产生错误,因为 apt-get 安装了旧版本的 Pandas。一旦我 installed/upgraded Pandas 使用 pip3,ImportErrors 就消失了。

编辑:如果您足够在意否决票,请尝试以评论的形式对此答案添加一些建设性的批评

from openpyxl.utils import get_column_letter

这也适用于 Python3

print(openpyxl.cell.get_column_letter(1)) # does not work …

您更愿意使用

print(openpyxl.utils.get_column_letter(1))

在 Python 3.8 中工作:

使用

导入库后

from openpyxl.utils import get_column_letter

可以通过这种方式获取字母数字列值:

print(get_column_letter(26))

column_variable = get_column_letter(26)

抱歉,如果这太简单了,我花了一段时间才意识到从列索引号到列字母的转换独立于任何可能打开的 sheet,因此,没有必要使用 dot.methods 用于作品sheet 或单个单元格。