전에 잠깐 설명했는데, 좀더 자세한 내 상황을 설명하면 특정 은행계좌의 거래내역 정리하는 기능을 회사 내부 시스템에 만들고 있다. API 를 사용할 수도 있겠지만 비용이 꽤 비싸 은행사이트에서 엑셀 파일을 export 하면 그 내용을 회사 내부 시스템에 업로드 하면 DB 에 해당 레코드를 저장하는 기능을 만들고 있다.
이 때문에 은행 사이트에서 통장의 거래내역을 엑셀로 다운받아서 해당 format 을 확인 하고 있었다. 그런데 이 파일을 분석해보니 확장자는 xls 인데 실제 내용은 html 인 것을 발견했다. 다운받은 파일을 메모장에 열어보면 html 태그와 table 태그 들이 나왔다. 그런데 신기하게 엑셀 프로그램에서 열렸다. 이 파일을 다른이름으로 저장하기를 하려고 하자, 확장자가 자동으로 html 으로 저장하기가 선택되어 있었다. 그제서야 이 것은 엑셀이 htlm 파일을 읽어서 자동으로 셀로 만들 것임을 깨닫았다. 정말 이런 꼼수가 있는지 처음 알았다. 확장자를 html 으로 변경하고 크롬에서 열리는지 확인했는데 크롬에서 열렸다.
2군데의 은행사이트 내용을 정리해야 해서 2군데 은행에서 엑셀파일을 다운받았는데, 2군데 모두 이런 format 이었다. 이게 뭔가 잘 알려진 내용인지도 모르겠다. 혹시 엑셀로 만들어주는 라이브러리를 사용못할 때 써 먹을만한 꼼수같다. 그런데 나에게는 일이 복잡하게 되었다. 파이썬에서 엑셀 라이브러리로는 읽을 수 없을 것 같다. 다른 방법을 생각해 봐야 할 것 같다.
오늘은/오늘 배운 것
- 엑셀 파일을 export 했는데, html 파일이 나왔다. 2020.06.24
- 오늘 날 괴롭했던 문제 python 으로 엑셀파일 읽기 2020.06.24
- 블로그에 글을 쉽게 적을 수 있도록 카테고리를 추가했다. 2020.06.24
엑셀 파일을 export 했는데, html 파일이 나왔다.
오늘 날 괴롭했던 문제 python 으로 엑셀파일 읽기
우선 엑셀 파일에는 .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를 둘다 사용하는 것으로 방향을 잡았다. 뭔가 낭비 인 것 같으나, 이게 가장 가벼운 방법인 것 같다.
블로그에 글을 쉽게 적을 수 있도록 카테고리를 추가했다.
블로그에 글을 적고 싶은데, 여기에 글을 적을 때마다 뭔가 거창하고 정리된 글을 올려야 한다는 압박을 받는다. 그러다 보니 글을 매우 가끔 올리게 된다.
그냥, 매일 일하면서 경험했던 것이나 개인 개발 하거나 공부하면서 알게 된 것을 가볍게 올릴 수 있는 카테고리를 추가했다. 멍청한 나에게는 시간 낭비하면서 삽질한 경험이지만 누군가에게는 소중한 시간을 아낄 수 있는 계기가 되는 글이 었으면 좋겠다.