본문 바로가기
Web Development

[Django] 엑셀 데이터 출력 페이지 만들기(5) - 엑셀 파일 업로드, 요약 정보 출력해보기

by ISLA! 2023. 8. 2.

1. 엑셀 파일 업로드와 관련된 html 파일 수정

  • action 지정 : "calculate/" 로 연결되게 함
  • enctype 지정 : 폼 데이터(form data)를 서버로 전송할 때 데이터의 인코딩 방식을 지정
🧐 프로젝트 폴더인 ExcelCalculate > urls.py 확인
    - path('calculate/', include('calculate.urls'), name="calculate")
    - 위 패스가 지정되어 있음을 확인 >> 즉, calculate 앱으로 이동한다는 것

 

 

👀 calculate > urls.py 확인
- path('', views.calculate, name="calculate_do")
- 즉, 이제 calculate 함수를 정의하면 됨!

 

2. 함수 정의

  • calculate > views.py 
  • 파일 업로드에 성공하면, 파일 이름을 확인 할 수 있는 코드를 작성

 

 

 

runserver 로 테스트 : 파일 업로드 해보기

 

1. 터미널 창에 아래 확인

2. 웹페이지 확인

 

3. 엑셀 파일 value 값 요약하는 함수 정의

  • calculate > views.py 
  • 이어서 함수 작성 : pandas 를 이용함
def calculate(request):
    # 파일 받아오기
    file = request.FILES['fileInput']
    print("사용자가 등록한 파일 이름: ", file)
    df = pd.read_excel(file, sheet_name="Sheet1", header=0)
    
    grade_df = df.groupby('grade')['value'].agg(["min", "max", "mean"]).reset_index().rename(columns = {"mean" : "avg"})
    print(grade_df)
    print("")
    df['domain'] = df['email'].apply(lambda x : x.split("@")[1])
    email_df = df.groupby('domain')['value'].agg("count").sort_values(ascending=False).reset_index()
    print(email_df)

    return HttpResponse("calculate, calculate function!")
  • 터미널에서 결과 확인

728x90