우선 엑셀 파일에는 .xls 와 .xlsx 류 확장자를 가지고 있다는 것을 알고 있어야 한다.
.xls 는 엑셀 version 2003 까지의 파일이고, .xlsx 는 엑셀버전 2007 이후의 파일 확장자이다.
파이썬에서 많이 쓰는 라이브러리 openpyxl 는 .xlsx 류(.xlsx, .xlsm ) 를 지원하고 .xls 는 지원하지 않는다.
.xls 파일을 열러면 xlrd 라이브러리를 사용한다.
외부 파일을 읽어들이는 프로그램을 작성하려면 확장자를 하나로 정하면 좋게지만, 내 case 의 경우 지정할 수 없었다.
내가 현재 개발하려는 것이 웹사이트에서 엑셀파일을 export 한 결과를 우리 회사 시스템에 import 하는 프로그램을 만들고 있는데, 이 웹사이트에 따라서 .xls 를 사용할 수도 있고, .xlsx 를 사용할 수도 있다보니 둘다 되는 방법을 찾고 있다. 가장 쉽게는 padas(내부적으로는 xlrd 를 사용하고 있어서 xlrd 설치도 필요하다고 한다.)를 이용하는 방법이 있는데, 이것은 웬지 닭잡는데 소잡는 칼도 아닌 핵폭탄을 사용하는 격으로 보였다. (엑셀파일을 읽는 예제를 보니 numpy 도 사용하게 되더라. 이건 좀 내가 만드는 시스템과 안 맞는 것 같다. )
그래서 결국 내 결론은 openpyxl 와 xlrd를 둘다 사용하는 것으로 방향을 잡았다. 뭔가 낭비 인 것 같으나, 이게 가장 가벼운 방법인 것 같다.
오늘 날 괴롭했던 문제 python 으로 엑셀파일 읽기
2020. 6. 24. 22:43