內容借鑑: django實現保存Excel、讀取Excel、將數據庫中的數據導出到Excelhtml
實現功能::前端
前端將數據傳過來, 後端將數據寫入excel表格並下載。python
注: 將數據庫數據導入excel 並下載同理ajax
原理分析:數據庫
咱們在後臺現將數據一二進制形式寫入內存中, 使用HttpResponse, 進行返回並指明返回類型, 規定好文件名便可,django
過程:後端
咱們在前端經過post 或get將數據提交過來, 後端將內容讀出寫入並下載。app
注: 在使用ajax請求時實現不了下載功能。post
前端:ui
<div> <form class="layui-form" method="post" action="{% url 'myUtils:createtable' %}"> <div class="layui-form-item layui-form-text"> <label class="layui-form-label">內容</label> <div class="layui-input-block text-content"> <textarea name="desc" placeholder="請輸入內容, 表格列劃分是以空格劃分, 行劃分是以換行來劃分的" class="layui-textarea text"></textarea> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn submit" lay-submit lay-filter="formDemo">當即提交</button> <button type="reset" class="layui-btn layui-btn-primary reset">重置</button> </div> </div> </form> </div>
view 代碼:
class CreateTable(View):
def get(self, request): return render(request, template_name="html/createtable.html", context={}) def post(self, request): text = request.POST.get('desc') if text:
# 指定文件類型
#指定數據類型爲excel response = HttpResponse(content_type='application/ms-excel') # 設置文件名 response['Content-Disposition'] = 'attachment; filename="result.xls"' # 建立工做薄 wb = xlwt.Workbook(encoding='utf-8') # 建立表 ws = wb.add_sheet("new sheet") font_style = xlwt.XFStyle() # 指定二進制 font_style.font.bold = True # 寫入表格 text_rows = text.split("\n") for row, row_data in enumerate(text_rows): row_data = row_data.strip().split(" ") for col, col_data in enumerate(row_data): ws.write(row, col, col_data, font_style) font_style = xlwt.XFStyle() wb.save(response) return response