Django匯出功能
阿新 • • 發佈:2018-12-21
匯出Excel
- 使用openpyxl生成Excel並匯出下載``
- Example:
import openpyxl from django.utils.http import urlquote # 下載檔案中文需要編碼需要使用這個 def exportToExcel(request): # 建立一個WorkBook wb = openpyxl.Workbook() # 建立一個Sheet sheet = wb.active # 往Excel的Sheet填充內容 sheet.cell(1, 1, '被審計單位') sheet.
- django中編寫下載檔案的程式碼時如果下載的檔名中包含中文,需要做特別的處理,不然無法正常下載檔案,在請求中中文需要被編碼;在django中提供了一個函式處理中文的編碼:
from django.utils.http import urlquote # 下載檔案中文需要編碼需要使用這個 filename = urlquote(filename) response['Content-Disposition'] = f'attachment;filename="{filename}"'
- 解決FireFox中下載中文檔案的亂碼:就是修改響應頭中的內容加上*以及utf-8’zh_cn’這部分的內容
"Content-Disposition","attachment;filename*=utf-8'zh_cn'檔名.xx" # Django response['Content-Disposition'] = "attachment;filename*=utf-8'zh_cn'" + filename
匯出Word
- django中匯出word檔案使用的庫是python-docx;在進行word匯出操作時,先生成一個word檔案,在下載該word檔案到本地,最後刪除這個word檔案,此時就有一個檔案被使用無法刪除的問題,解決方式是通過用一個list變數儲存該檔案的二進位制位元組字串,然後刪除原始檔,利用該中間的list變數去完成下載的工作,傳參給FileResponse