首页 > 其他 > 详细

django 结合 xlwt 实现数据导入excel 并下载

时间:2019-10-23 00:30:25      阅读:325      评论:0      收藏:0      [点我收藏+]

内容借鉴:  django实现保存Excel、读取Excel、将数据库中的数据导出到Excel

实现功能::

  前端将数据传过来, 后端将数据写入excel表格并下载。

  注: 将数据库数据导入excel 并下载同理

 

原理分析:

  我们在后台现将数据一二进制形式写入内存中, 使用HttpResponse, 进行返回并指明返回类型,  规定好文件名即可,

过程:

  我们在前端通过post 或get将数据提交过来, 后端将内容读出写入并下载。

  注: 在使用ajax请求时实现不了下载功能。

 

前端:

<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:
            #指定数据类型
            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

 

django 结合 xlwt 实现数据导入excel 并下载

原文:https://www.cnblogs.com/ShanCe/p/11723587.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!