728x90
반응형
🚫xlwt 구현 방법 참고용 (권장X) 이유는 👉 https://carpet-part1.tistory.com/470 참고🚫
1️⃣ xlwt 받기
pip install xlwt
2️⃣ 엑셀 다운로드 구현
엑셀 export 기능을 구현할 app의 views.py
import xlwt
def excel_export(request):
response = HttpResponse(content_type="application/vnd.ms-excel")
response["Content-Disposition"] = 'attachment;filename*=UTF-8\'\'example.xls'
wb = xlwt.Workbook(encoding='ansi') #encoding은 ansi로 해준다.
ws = wb.add_sheet('출입 신청') #시트 추가
row_num = 0
col_names = ['날짜', '업체명', '직책', '이름]
#열이름을 첫번째 행에 추가 시켜준다.
for idx, col_name in enumerate(col_names):
ws.write(row_num, idx, col_name)
#데이터 베이스에서 유저 정보를 불러온다.
rows = Board.objects.all().values_list('start_date', 'company', 'position', 'guest_name')
#유저정보를 한줄씩 작성한다.
for row in rows:
row_num +=1
for col_num, attr in enumerate(row):
ws.write(row_num, col_num, attr)
wb.save(response)
return response
3️⃣ url 등록
from django.urls import path
from . import views
urlpatterns = [
path('list/', views.board_list),
path('write/', views.board_write),
path(r'^export/xls/$', views.excel_export, name='excel_export') # 엑셀 파일 다운로드
]
4️⃣ 템플릿에 엑셀 다운로드 버튼 생성
원하는 위치에 엑셀 다운로드 버튼 생성하기
<button class="btn" onclick="location.href='/board/%5Eexport/xls/$'">엑셀 다운로드</button>
반응형
'Project > access-control' 카테고리의 다른 글
Attempt to overwrite cell 오류 해결👏 (0) | 2021.11.19 |
---|---|
class has no objects member 해결하기👏 (0) | 2021.11.18 |
Python excel export(XlsxWriter) (0) | 2021.11.16 |
Django 템플릿 생성 순서(간단하게 정리) (0) | 2021.11.15 |
템플릿 날짜 포맷 설정 및 날짜로 원하는 결과 가져오기 (0) | 2021.11.12 |