码迷,mamicode.com
首页 > 编程语言 > 详细

python之路_excel批量导入数据

时间:2018-03-11 02:29:23      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:multi   userinfo   关于   nta   div   循环   一个   port   extend   

批量导入excel文件中的数据,我们需要借助xlrd模块,示例如下:

  视图代码:

import xlrd
def multi_view(self,request):
    """
    批量导入
    :param request: 
    :return: 
    """
    if request.method == GET:
        return render(request,multi_view.html)
    else:
        file_obj = request.FILES.get(exfile)
        with open(xxxxxx.xlsx,mode=wb) as f:
            for chunk in file_obj:
                f.write(chunk)
       
        workbook = xlrd.open_workbook(xxxxxx.xlsx)
       
        sheet = workbook.sheet_by_index(0)            #拿到excel中的第一个文件薄
        maps = {
            0:name,
            1:qq,
        }
        #maps是关于excel表中应该有的字段和字段顺序
        for index in range(1,sheet.nrows):            #对数据行进行循环(不包含第一行的字段行)
            row = sheet.row(index)                    #获得行的列对象
            row_dict = {}
            for i in range(len(maps)):
                key = maps[i]
                cell = row[i]
                row_dict[key] = cell.value            #cell.value获得列中的内容
            print(row_dict)
           #将数据录入数据库,如:UserInfo.objects.create(**row_dict)
        return HttpResponse(上传成功)

  页面代码:

{% extends ‘stark/layout.html‘ %}

{% block body %}
    <h1 >批量导入数据</h1>
{# 为了用户批量上传的文件数据按照我们视图代码中要求的那些字段格式,我们可以提供这样的模板excel#}
    <a href="/static/xxx.xlsx">下载模板</a>   
    <form method="post" enctype="multipart/form-data" class="form-horizontal" novalidate>
        {% csrf_token %}
        <input type="file" name="exfile">

        <input type="submit" value="提交">
    </div>
    </form>
{% endblock %}

 

python之路_excel批量导入数据

标签:multi   userinfo   关于   nta   div   循环   一个   port   extend   

原文地址:https://www.cnblogs.com/seven-007/p/8542896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!