본문 바로가기
  • 여행하고 먹는 즐거운 콘지의하루
프로그래머의 프로그래밍 이야기/Web Programming

django 에서 excel을 database로 import 해보자!

by 콘지 2022. 1. 29.

안녕하세요 python 에서는 다양한 방법으로 excel 을 읽어서 database로 import 할 수 있습니다.

저도 이번에 처음 안 사실인데요!

excel을 vi(linux command)로 열어보면 excel이 html 구조로 되어있더라구요

vi로 연 excel 문서

이러한 엑셀 파일을 python에서 import 시키는 대표적인 툴들에 대해서 알아보겠습니다.

python에서 직접 api들을 통해서 excel을 만들 수 있고

python에서 api들을 사용해서 만들어진 excel을 가져올 수 있습니다.

이렇게 읽은 excel 데이터들을 사용하여 database로 import 하게 되면 더욱 효율적인 작업을 할 수 있습니다.

 

또한 parser에 따라서 지원하는 excel의 포멧 및 버전의 특징이 있는 것 같습니다.

따라서, import/export 하려는 엑셀의 확장자(xlsx(openpyxl), xlsb(pyxlsb))를 잘 보면서

parser를 선택하시면 될 것 같아요! (intro만 보고 적은 내용이므로 다르면 알려주세요!)

 

그럼 excel parser들을 알아봅시다. 

 

1. openpyxl

- Excel 2010 files(예를들면 xlsx)를 읽고 쓸 수 있는 패키지라고 합니다 

https://openpyxl.readthedocs.io/en/stable/

 

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.9 documentation

Install openpyxl using pip. It is advisable to do this in a Python virtualenv without system packages: Warning To be able to include images (jpeg, png, bmp,…) into an openpyxl file, you will also need the “pillow” library that can be installed with:

openpyxl.readthedocs.io

가장 많이 사용되는 패키지인 것 같습니다

다음 링크에서는 간단히 openpyxl을 사용해서 엑셀을 읽고/써서 database에 import 해보도록 하겠습니다

< 링크 > 

 

2.xlsxwriter

https://xlsxwriter.readthedocs.io

 

Creating Excel files with Python and XlsxWriter — XlsxWriter Documentation

 

xlsxwriter.readthedocs.io

xlsxwriter도 많이 사용되는 패키지 중 하나인데,

보면 excel에 write 하는 기능들이 강점인 패키지 같습니다. 

저같은 경우에는 기존에 만들어진 excel을 사용하여 database에 import를 하는 경우이므로 해당 패키지는 사용할 수 없을 것 같습니다.

 

3.pyxlsb

https://pypi.org/project/pyxlsb/

 

pyxlsb

Excel 2007-2010 Binary Workbook (xlsb) parser

pypi.org

Excel 2007-2010에 특화된 excel  parcer 입니다(이름에서도 나와있듯이 xlsb를 타겟으로 하나보네요).

현재 기능은 제한되어 있는데, 기본적인 추출과 같은 기능을 지원하고 있다라고 매뉴얼에 기재되어 있습니다.

단순한 2007-2010 버전의 엑셀 extract(엑셀 내용을 python으로 가져오는)기능을 사용하고 싶으시다면사용해보셔도 될 것 같네요.

 

4. pylightxlhttps://www.excelpython.org/pylightxl/

 

Python for Excel

Python for Excel compiles the best open-source Python libraries for working with Excel. It helps you choose the most suitable library for your use case.

www.excelpython.org

 

  • Reader supports .xlsx and .xlsm file extensions.
  • Writer only supports .xlsx (no macros/buttons/graphs/formatting)

xlsx 는 reader/writer 전부 지원 / xlsm 같은 경우 read만 지원한다고 하시니 참고 하시면 될것 같아요!

 


 

그외에 여러가지 리스트들이 있었지만

저는 이미 openpyxl을 사용하여 excel 데이터를 가져오려고 했기 때문에 

나머지들은 참고문서의 내용을 참고 해주시길 바랍니다.

그럼 다음 포스팅에서 openpyxl 을 사용하여 excel 문서를 extract 해볼께요~

 

참고문서

https://www.python-excel.org : Working with Excel Files in Python 

반응형

댓글