返回顶部
首页 > 资讯 > 后端开发 > Python >Django上传excel表格并将数据写入数据库的详细步骤
  • 456
分享到

Django上传excel表格并将数据写入数据库的详细步骤

2024-04-02 19:04:59 456人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言:一、上传文件:二、解析 excel 导入数据库前言: 最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时。于是

前言:

最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时。于是就写了个报表工具,将 jira 中导出的个人工时excel表格 导入数据库,在后端处理各个业务工时占比。后来研究了 jira 的 api 文档 ,放弃了之前的思路,直接调用 jira API 处理数据 ,这个先不谈。这篇博客主要介绍 Django 上传文件,然后解析 excel 导入数据库。

一、上传文件:

将文件上传到服务器指定路径,其实很简单,一共有三个步骤:

1.配置 setting.py

# 文件上传配置
UPLOAD_ROOT = os.path.join(BASE_DIR,'upload')

2.前端代码如下,使用 <fORM> 表单提交,"/upload/" 路由配置在 urls 中,这个就不再多说了。

{% extends 'base.html' %}

{% block content %}
<body>
     <form id="form"  enctype="multipart/form-data" action="/upload/" method="post">
      <p><input type="file"  name="file"></p>
         <input type="submit" name="提交">
    </form>
</body>
{% endblock %}

3.后端代码如下,这段代码可以上传任意格式的文件,没有校验文件类型。

@csrf_exempt
def upload(request):
    # 根name取 file 的值
    file = request.FILES.get('file')
    logger.log().info('uplaod:%s'% file)
    # 创建upload文件夹
    if not os.path.exists(settings.UPLOAD_ROOT):
        os.makedirs(settings.UPLOAD_ROOT)
    try:
        if file is None:
            return HttpResponse('请选择要上传的文件')
        # 循环二进制写入
        with open(settings.UPLOAD_ROOT + "/" + file.name, 'wb') as f:
            for i in file.readlines():
                f.write(i)
    except Exception as e:
        return HttpResponse(e)
    return HttpResponse('上传成功')

二、解析 excel 导入数据库

1.文件上传结束后,接下来读取刚上传到服务器的 excel 表格,然后写入数据库。所以整个后端代码是这样的:

# 将excel数据写入Mysql
def wrdb(filename):
    # 打开上传 excel 表格
    readboot = xlrd.open_workbook(settings.UPLOAD_ROOT + "/" + filename)
    sheet = readboot.sheet_by_index(0)
    #获取excel的行和列
    nrows = sheet.nrows
    ncols = sheet.ncols
    print(ncols,nrows)
    sql = "insert into working_hours (jobnum,name,workingtime,cateGory,project,date,createtime) VALUES"
    for i in range(1,nrows):
        row = sheet.row_values(i)
        jobnum = row[4]
        name = row[5]
        workingtime = row[2]
        category = row[8]
        project = row[1]
        date = xldate_as_datetime(row[3],0).strftime('%Y/%m/%d')
        values = "('%s','%s','%s','%s','%s','%s','%s')"%(jobnum,name,workingtime,category,project,date,datetime.datetime.now())
        sql = sql + values +","
    # 为了提高运行效率,一次性把数据 insert 进数据库   
    sql = sql[:-1]
    # 写入数据库  
    # DataConnection 是自定义的公共模块,用的是第三方库,用来操作数据库。没有用 ORM ,后续有 group by 等复杂 sql 不好操作。
    DataConnection.mysqlConnection().insert('work',sql)
@csrf_exempt
def upload(request):
    # 根name取 file 的值
    file = request.FILES.get('file')
    print('uplaod:%s'% file)
    # 创建upload文件夹
    if not os.path.exists(settings.UPLOAD_ROOT):
        os.makedirs(settings.UPLOAD_ROOT)
    try:
        if file is None:
            return HttpResponse('请选择要上传的文件')
        # 循环二进制写入
        with open(settings.UPLOAD_ROOT + "/" + file.name, 'wb') as f:
            for i in file.readlines():
                f.write(i)

        # 写入 mysql
        wrdb(file.name)
    except Exception as e:
        return HttpResponse(e)

    return HttpResponse('导入成功')

2.数据导入后,通过一些处理就得到了我们想要的数据。报表其中之一的饼图:

到此这篇关于Django上传excel表格并将数据写入数据库的文章就介绍到这了,更多相关Django上传excel表格内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django上传excel表格并将数据写入数据库的详细步骤

本文链接: https://lsjlt.com/news/119063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django上传excel表格并将数据写入数据库的详细步骤
    目录前言:一、上传文件:二、解析 excel 导入数据库前言: 最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时。于是...
    99+
    2024-04-02
  • Django怎么上传excel表格并将数据写入数据库
    本文小编为大家详细介绍“Django怎么上传excel表格并将数据写入数据库”,内容详细,步骤清晰,细节处理妥当,希望这篇“Django怎么上传excel表格并将数据写入数据库”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-02
  • Springboot怎么上传excel并将表格数据导入或更新mySql数据库
    这篇文章主要讲解了“Springboot怎么上传excel并将表格数据导入或更新mySql数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot怎么上传excel并将表格数...
    99+
    2023-06-08
  • 怎么将EXCEL的数据写入数据库
    这篇文章主要介绍“怎么将EXCEL的数据写入数据库”,在日常操作中,相信很多人在怎么将EXCEL的数据写入数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么将EXCEL的数据写入数据库”的疑惑有所帮助!...
    99+
    2023-06-03
  • java进阶解析Springboot上传excel存入数据库步骤
    目录一、导入依赖二、前端实现三、后台逻辑三、页面效果四、可能会遇到的问题一、导入依赖 这里还是用了Apache的POI插件,现在一般的springboot解析excel基本都用它 。...
    99+
    2024-04-02
  • python如何生成EXCEL、连接数据库、并将指定数据写入EXCEL
    小编给大家分享一下python如何生成EXCEL、连接数据库、并将指定数据写入EXCEL,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!#!/usr/bin/p...
    99+
    2024-04-02
  • python将Dataframe格式的数据写入opengauss数据库并查询
    目录一、将数据写入opengauss二、python条件查询opengauss数据库中文列名的数据一、将数据写入opengauss 前提准备: 成功opengauss数据库,并创建用...
    99+
    2024-04-02
  • pentaho工具将数据库数据导入导出为Excel图文步骤
    目录需求一:将mysql一张表数据导出到Excel第一步:添加数据库驱动包第二步:新建转换第三步:配置数据库连接第四步:配置输出Excel格式第五步:运行需求二:将Excel数据导入...
    99+
    2024-04-02
  • Java实现上传Excel文件并导入数据库
    目录Java实现上传Excel文件并导出到数据库 1、导入依赖2、domain3、utils4、Controller5、xmlJava实现上传Excel文件并导出到数据库 1、导入...
    99+
    2024-04-02
  • sql2005数据库转为sql2000数据库的详细步骤
    本篇内容介绍了“sql2005数据库转为sql2000数据库的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • python怎么将Dataframe格式的数据写入opengauss数据库并查询
    本文小编为大家详细介绍“python怎么将Dataframe格式的数据写入opengauss数据库并查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么将Dataframe格式的数据写入opengauss数据库并查询”文章能...
    99+
    2023-06-30
  • 在阿里云上装数据库的详细步骤
    随着大数据时代的到来,数据库在数据存储和处理方面的作用越来越重要。阿里云作为一个领先的云计算平台,提供了丰富的数据库服务,本文将详细介绍如何在阿里云上装数据库。 一、在阿里云上装数据库的步骤创建阿里云账号首先,你需要有一个阿里云账号才能使用...
    99+
    2023-11-01
    阿里 上装 步骤
  • 非常详细的Django连接mysql数据库步骤记录
    目录一.修改数据库连接二.安装数据库驱动三.创建表并同步到mysql数据库:总结一.修改数据库连接 打开项目,在settings.py文件中是否有以下内容: 以上内容是创建django项目的时候是自动创建的。这个是告诉...
    99+
    2024-04-02
  • 将excel中数据导入到指定的数据库表中
    1、先在数据库中查看表的结构:2、根据表的结构整理excel表结构及数据:3、右击数据库-任务-导入数据:4、选择源数据:5、选择目标:6、选择复制数据模式:7、选择目标数据表:8、点击下一步,然后执行。 ...
    99+
    2024-04-02
  • python数据写入Excel文件中的实现步骤
    目录一、导入excel表格文件处理函数二、创建excel表格类型文件三、在excel表格类型文件中建立一张sheet表单四、自定义列名五、将列属性元组col写进sheet表单中六、将...
    99+
    2024-04-02
  • 在阿里云上搭建数据库的详细步骤
    这篇文章将详细介绍如何在阿里云上搭建数据库,包括选择适合的数据库类型、创建数据库实例、配置数据库参数、进行数据迁移等步骤。阿里云提供了丰富的数据库服务,如MySQL、Oracle、MongoDB、Redis等,本文将重点介绍MySQL数据库...
    99+
    2023-11-02
    阿里 步骤 数据库
  • 阿里云上启动MySQL数据库的详细步骤
    本文将详细地介绍在阿里云上启动MySQL数据库的步骤,包括环境配置、数据库安装、数据库配置、数据导入、权限设置等。 一、环境配置创建阿里云账号:如果你还没有阿里云账号,可以通过阿里云官网注册一个。登录阿里云账号:在浏览器中输入阿里云官网地址...
    99+
    2023-12-12
    阿里 步骤 数据库
  • 阿里云建数据库表文件的详细步骤
    随着云计算的快速发展,越来越多的企业和个人开始使用阿里云进行数据存储和处理。在这篇文章中,我们将详细介绍如何在阿里云上创建数据库表文件。无论您是初学者还是经验丰富的开发者,这篇文章都将为您提供清晰的指导。 步骤一:创建阿里云账号首先,你需要...
    99+
    2023-11-01
    阿里 步骤 数据库
  • php怎么导出数据库的数据并转为excel表格
    在网站开发和数据处理中,数据库扮演着非常重要的角色,如何正确地导出数据库数据并转换为Excel表格则是我们常常需要解决的问题。在本文中,我们将介绍如何使用PHP语言轻松地实现这一操作。一、准备工作在开始我们的操作之前,需要安装PHP环境和P...
    99+
    2023-05-14
    php 数据库
  • php如何导出数据库的数据并转为excel表格
    本文小编为大家详细介绍“php如何导出数据库的数据并转为excel表格”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何导出数据库的数据并转为excel表格”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作