Django/view

[Python] Excel 다운로드

두잇 두두 2024. 2. 15. 21:47
728x90

https://wikidocs.net/91661

 

3.0 파이썬 엑셀 다루기 - openpyxl 사용법

파이썬을 통해서 엑셀파일을 불러오고 데이터를 입력하는 방법에 대해서 알아볼게요. **openpyxl은 파이썬에서 엑셀을 다루는 것을 쉽게 해주는 도구**입니다. ----- …

wikidocs.net

 

코드

from openpyxl.workbook import Workbook

workbook = Workbook()
ws = workbook.active
ws.title = "타이틀 설정"
headers = ['작성분류', '작성일자', '수정일자', '장소명', '상태', '유저', '관리자']
ws.append(headers)
ws.append() #데이터 입력

 

with NamedTemporaryFile() as tmp: #임시로 파일을 저장해서 읽어둠
    workbook.save(tmp.name)
    tmp.seek(0)
    stream = tmp.read()

 

content_type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
response = HttpResponse(stream, content_type=content_type)
response['Content-Disposition'] = 'attachment; filename=export.xlsx'
response['Access-Control-Expose-Headers'] = 'Content-Disposition'
return response


# Content-Disposition 헤더는 브라우저에게 서버로부터 전송된 파일을 어떻게 처리해야 하는지 알려주는 헤더입니다. 
# 위 코드에서는 attachment로 설정되어 있어, 브라우저는 파일을 다운로드하도록 하게 됩니다. filename 파라미터에는 다운로드되는 파일의 이름이 지정되어 있습니다.
# Access-Control-Expose-Headers 헤더는 CORS (Cross-Origin Resource Sharing) 정책에 따라 브라우저가 접근할 수 있는 헤더를 지정하는데 사용됩니다.
# CORS 정책에 따라 브라우저가 허용된 헤더에만 접근할 수 있기 때문에 필요한 경우 이 헤더를 설정해주어야 합니다.