ImportError: cannot import name get_column_letter

Each Answer to this Q is separated by one/two green lines.

I am able to use openpyxl as an import in my code. But when I try to do the following:

from openpyxl.cell import get_column_letter 

I get the following error:

ImportError: cannot import name get_column_letter

I am using python 2.7. I have installed it using easy_install. Tried searching for this issue but couldn’t find anything related to it.

The function get_column_letter has been relocated in Openpyxl version 2.4 from openpyxl.cell to openpyxl.utils.

The current import is: from openpyxl.utils import get_column_letter

If you do not know which version the end-user has, you can use the following code:

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

from openpyxl.utils import get_column_letter

This is working for Python3 also.

I got the same problem and I reinstall the latest openpyxl using “python setup.py install”. Then it works.

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

You would rather use

print(openpyxl.utils.get_column_letter(1))

Working in Python 3.8:

Once the library has been imported using

from openpyxl.utils import get_column_letter

the alphanumeric column value can be acquired by this approach:

print(get_column_letter(26))

or

column_variable = get_column_letter(26)

Sorry if this is too simplistic, it took me a while to realize the conversion from column index number to column letter is independent of any sheet that might be open, therefore, there’s no need to use dot.methods for a worksheet or individual cell.

tl;dr for Python3

  • pip3 install Cython
  • pip3 install pandas

Neither of the other two solutions from Abbas or Jael Woo worked for me for Python3.

I ended up using apt-get install python3-pandas, but then pip3 install pandas failed because it said I needed Cython, as it does mention in the Pandas installation docs that it is an “optional dependency” anyways.

That being said, I ran pip3 install Cython and then ran pip3 install pandas, and it worked.

Note: Cython and Pandas installation took a while on Ubuntu (unsure of EC2’s Ubuntu version) but seemed to be much quicker on Mac 10.11.5

EDIT: using apt-get to install Pandas yielded errors because apt-get installed an older version of Pandas. Once I installed/upgraded Pandas using pip3, the ImportErrors were gone.

Edit: if you care enough to downvote, try adding some constructive criticism to this answer in the form of a comment


The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .