728x90
코드
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 정책에 따라 브라우저가 허용된 헤더에만 접근할 수 있기 때문에 필요한 경우 이 헤더를 설정해주어야 합니다.
'Django > view' 카테고리의 다른 글
[Python] 개월 수로 필터링 (0) | 2024.03.06 |
---|---|
Django 검색 구현 + 형태소 분석기 이용 (0) | 2024.02.15 |