2009-12-11 3 views
3

Django의 요청에 따라 동적 Excel 파일을 생성하고 싶습니다. 라이브러리 pyExcelerator가이 작업을 수행하지만 서버 쪽 임시 Excel 파일을 생성하지 않고 내용을 읽고 삭제하지 않고 Excel 파일의 내용을 사용할 방법을 찾지 못했습니다.pyExcelerator를 사용하면 Django로 동적 Excel 파일을 생성 할 수 있습니다. 고유 임시 파일 이름 확인

workbook = pyExcelerator.Workbook() 
workbook.save("tmp_filename") 

그리고 임시 파일 내용을 읽을 수 :

문제는 pyExcelerator Excel 파일의 내용을 추출 할 수있는 유일한 방법은 통해 저장되어 있다는 점이다. 표준 라이브러리 "tempfile"은 파일을 허용하지 않기 때문에 사용할 수 없습니다. 단지 파일 이름입니다. 파일 이름이 고유하고 파일이 사용되면 삭제되는 것을 어떻게 확인할 수 있습니까?

답변

11

pyExcelerator가 전혀 관리가되지 않고,하지만 그것을 유지하고 당신이 어떤 파일 - 류의 객체를 저장할 수를 포함하여 더 많은 기능을 가지고있다 포크, xlwt을 가지고 있습니다. 여기에는 장고에 바로 저장하는 것이 포함됩니다. HttpResponse :

from django.http import HttpResponse 
import xlwt 

def my_view(request): 
    response = HttpResponse(mimetype="application/ms-excel") 
    response['Content-Disposition'] = 'attachment; filename="foo.xls"' 
    wb = xlwt.Workbook() 
    wb.save(response) 
    return response 
3

tempfile 모듈을 사용할 수없는 이유는 무엇입니까?

방법에 대해 :

import tempfile 
fd, filename = tempfile.mkstemp() 
fd.close() 
workbook.save(filename) 
+1

+1. 파일을 사용한 후에 파일을 삭제하는 것을 잊지 마십시오. 훌륭한 설명서에 따르면 : "호출자는 파일을 삭제할 책임이 있습니다." – ema