django excel 불러오기 및 생성 하기
본문 바로가기

settings.py

# 엑셀 파일 업로드 핸들러
FILE_UPLOAD_HANDLERS = ("django_excel.ExcelMemoryFileUploadHandler",
                    "django_excel.TemporaryExcelFileUploadHandler")

bash

pip install django-excel # 엑셀을 데이터베이스에 매핑 시키는 라이브러리
pip insrtall openpyxl # 엑셀 crud 라이브러리
pip install pyexcel-xlsx  # xlsx 확장자를 다루는 라이브러리 (csv xls 도 있음)

views.py

# 엑셀을 생성 및 행 추가 (여기서는 행 단위 추가만 함 열만 추가하는건 검색 바람 )
from openpyxl import Workbook # 엑셀을 만드는 api (엑셀 미설치 시에도 동작)
from io import BytesIO # 엑셀 파일을 전송 할 수 있도록 바이트 배열로 변환

wb = Workbook()  # 엑셀 생성
ws = wb.active	# 엑셀 활성화
excelfile = BytesIO() #바이트 배열 생성

ws['A1']= 'company' # 엑셀 a1 열 이름 정하기
ws['B1']= 'product'
ws['C1']= 'count'

for i in text: # text 는 db 에 저장된 내용 전체
  content=[i.company,i.product_name,i.count]   #리스트 형태로 1 행씩 생성(a1, b1, c1) 에 각각
  ws.append(content) # 엑셀에 1행을 추가

wb.close()  #엑셀 닫기
wb.save(excelfile) # 바이트배열로 저장 (mail 전송 하려면 바이트형태로 변환 되어야 함)
# 엑셀을 input tag 로 입력받아 db에 저장 하는 코드
request.FILES['files'].save_to_database(
                model = Order, 	#매핑 대상 db
                mapdict= ['company', 'product_name', 'count','emails'] # 칼럼에 매핑

 

'Django' 카테고리의 다른 글

Django Framework  (0) 2020.06.22
Django dbsqlite3 오류  (0) 2019.09.23
django email 라이브러리  (0) 2019.09.23
Django 명령어 모음  (0) 2019.09.23

FlaShLab