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>
반응형
복사했습니다!