>source

확장명이있는 엑셀 파일을 다운로드하는 버튼이 있습니다 .xls . 모듈을 사용하고 있습니다 xlrd 파일을 구문 분석하고 사용자에게 다시 반환합니다. 그러나 데이터 대신 Excel 파일에 개체 이름을 추가하는 것으로 보입니다.

개체 이름이 아닌 데이터를 사용하여 파일을 사용자에게 반환하려면 어떻게해야합니까?

전망

def download_file(self, testname):
    import csv, socket, os, xlrd
    extension = '.xls'
    path = r"C:\tests\{}_Report{}".format(testname, extension)   
    try:
        f = xlrd.open_workbook(path)
        response = HttpResponse(f, content_type='application/ms-excel')
        response['Content-Disposition'] = 'attachment; filename={}_Report{}'.format(testname, extension)
        return response
    except Exception as Error:
        return HttpResponse(Error)
    return redirect('emissions_dashboard:overview_view_record')

Excel 결과

다운로드 성공 :

함유량:

참고 : 이것이 이전 파일 형식이지만이 특정 프로젝트에 필요하다는 것을 이해합니다.

  • 답변 # 1

    파일이 아닌 xlrd.book.Book 오브젝트를 보내려고합니다.

    xlrd를 사용하여 통합 문서에서 작업을 수행 한 다음 파일에 저장했습니다.

    workbook = xlrd.open_workbook(path)
    #... do something
    workbook.save(path)
    
    

    이제 다른 파일처럼 보냅니다.

    with open(path, 'rb') as f:
      response = HttpResponse(f.read(), content_type="application/ms-excel")
      response['Content-Disposition'] = 'attachment; filename={}_Report{}'.format(testname, extension)
    
    

관련 자료

  • 이전 node.js - "npm install X --save"는 X가 N에 의존하는 경우 N이 X와 함께 자동으로 설치된다는 의미입니까?
  • 다음 python - 날짜 열을 그대로 유지하면서 pandas 집계 수행