django 엑셀 xlwt
django 사이트에서는 데이터베이스 내의 데이터를 바탕으로 엑셀 파일을 생성하고 싶습니다.
xlwt를 사용하려고 합니다만, 데이터를 파일에 보존하는 방법밖에 없습니다.어떻게 하면 파일을 HttpResponse 객체에 가져올 수 있습니까?아니면 더 나은 도서관을 알고 있나요?
저도 이 조각을 찾았지만, 제가 원하는 대로 되지 않아요.xlwt 오브젝트에서 응답 오브젝트로 스트림을 가져오는 방법(일시 파일에 쓰지 않고)만 있으면 됩니다.
깔끔한 패키지! 나는 이것에 대해 몰랐다.
의사 선생님 말씀에 따르면save(filename_or_stream)
method는 저장할 파일 이름 또는 쓸 파일과 같은 스트림을 사용합니다.
그리고 Django 응답 객체는 파일 같은 스트림입니다.그래서 그냥.xls.save(response)
ReportLab에서 PDF를 생성하는 방법에 대한 Django 문서를 참조하여 비슷한 상황을 확인하십시오.
편집: (Shawn Milo의 코멘트에서 인용):
def xls_to_response(xls, fname):
response = HttpResponse(mimetype="application/ms-excel")
response['Content-Disposition'] = 'attachment; filename=%s' % fname
xls.save(response)
return response
그런 다음 뷰 기능을 사용하여xls
반대하여 끝내다
return xls_to_response(xls,'foo.xls')
***UPDATE: django-module-module은 더 이상 유지보수가 되지 않습니다.대신 Marmir http://brianray.github.com/mm/ 를 사용해 주세요.
아직 개발중입니다만, http://code.google.com/p/django-excel-templates/의 Django Excel 템플릿 프로젝트는, 고객의 요구에 응하는 것을 목적으로 하고 있습니다.
구체적으로 검사 결과를 보세요.다음은 간단한 예입니다.
#
from django_excel_templates import *
from django_excel_templates.color_converter import *
from models import *
from django.http import HttpResponse
def xls_simple(request):
## Simple ##
testobj = Book.objects.all()
formatter = ExcelFormatter()
simpleStyle = ExcelStyle(vert=2,wrap=1)
formatter.addBodyStyle(simpleStyle)
formatter.setWidth('name,category,publish_date,bought_on',3000)
formatter.setWidth('price',600)
formatter.setWidth('ebook',1200)
formatter.setWidth('about',20000)
simple_report = ExcelReport()
simple_report.addSheet("TestSimple")
filter = ExcelFilter(order='name,category,publish_date,about,bought_on,price,ebook')
simple_report.addQuerySet(testobj,REPORT_HORZ,formatter, filter)
response = HttpResponse(simple_report.writeReport(),mimetype='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename=simple_test.xls'
return response
XLS 파일을 문자열에 저장할 수 있습니다.파일과 같은 IO 객체입니다.
문자열을 반환할 수 있습니다.IO 오브젝트의getvalue()
반응으로요.헤더를 추가하여 다운로드 가능한 스프레드시트로 표시해야 합니다.
당신은 아마도 huDjango라는 함수에 의해 제공되는 huDjango를 확인하고 싶을 것이다.serializers.queryset_to_xls()
쿼리셋을 다운로드 가능한 Excel 시트로 변환합니다.
https://bitbucket.org/kmike/django-excel-response 를 사용합니다.
데이터 결과에 수식이나 정확한 프레젠테이션 스타일이 필요하지 않은 경우 언제든지 CSV를 사용할 수 있습니다. 스프레드시트 프로그램은 CSV를 직접 읽습니다.CSV를 생성하지만 이름을 로 지정하는 웹 앱도 있습니다.Excel이 XSL을 여는 것을 확인합니다.
언급URL : https://stackoverflow.com/questions/883313/django-excel-xlwt
'programing' 카테고리의 다른 글
SQL에서 열과 행을 쉽게 바꿀 수 있는 방법? (0) | 2023.04.16 |
---|---|
파일을 리셋하거나 특정 리비전으로 되돌리려면 어떻게 해야 합니까? (0) | 2023.04.16 |
Dart를 사용하여 문자열을 숫자로 해석하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
Xcode 4에서 NSZombieEnabled를 설정하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
Excel 문자열로 날짜 연결 (0) | 2023.04.16 |