嗨,我有一個簡短的問題。我沒有在互聯網上找到答案,也許有人可以幫助我。Django:openpyxl保存工作簿作爲附件
所以我要保存工作簿作爲附件,但我不知道如何讓我們看看一個例子:
from openpyxl import Workbook
from openpyxl.cell import get_column_letter
wb = Workbook(encoding='utf-8')
dest_filename = 'file.xlsx'
ws = wb.worksheets[0]
ws.title = "range names"
for col_idx in xrange(1, 40):
col = get_column_letter(col_idx)
for row in xrange(1, 600):
ws.cell('%s%s'%(col, row)).value = '%s%s' % (col, row)
ws = wb.create_sheet()
ws.title = 'Pi'
ws.cell('F5').value = 3.14
然後我嘗試:
response = HttpResponse(wb, content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename="foo.xls"'
return response
它的確但返回XLSX文件中的文件只有對象adres沒有文件內容:
<openpyxl.workbook.Workbook object at 0x00000000042806D8>
有人可以幫忙嗎?
您是否試過實例化'output = StringIO.StringIO()',然後通過'openpyxl.writer.excel.save_workbook'方法寫入並將'output.getvalue()'傳遞給'HttpResponse'構造函數?讓我知道它是否有幫助 - 我將添加它作爲答案。 – alecxe
另一個選擇是使用'openpyxl.writer.excel.save_virtual_workbook'方法。 – alecxe
'response = HttpResponse(save_virtual_workbook(wb),content_type ='application/vnd.ms-excel')' Working Thanks mate :))將此評論作爲答覆我會將其標記爲已更正 – Silwest