django导出excel表格,django excel导入导出

  django导出excel表格,django excel导入导出

  本文主要介绍Django上传excel表格,将数据写入数据库,上传文件到服务器指定路径。其实很简单。本文分三步给大家详细介绍。有需要的朋友可以参考一下。

  00-1010前言:1。上传文件:2。分析excel导入数据库。

  

目录

 

  最近公司领导想统计各业务线技术部门的工作时间占比,而jira目前的Tempo插件只能统计个人的工作时间。于是我写了一个报表工具,把jira导出的个人工作时间excel表导入数据库,在后端处理每个业务的工作时间比例。后来学习了jira的API文档,放弃了之前的思维,直接调用jira API处理数据。我们暂时不谈这个。本博客主要介绍Django上传文件,然后分析excel导入数据库。

  

前言:

 

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

  1.configure setting.py

  #文件上传配置

  UPLOAD _ ROOT=OS . path . join(BASE _ DIR,“UPLOAD”)

  2.前端代码如下,使用form表单提交,URL中配置了/upload/路由,这个我就不多说了。

  {% extends base.html %}

  {%阻止内容%}

  身体

  form id= form enctype= multipart/form-data action=/upload/ method= post

  pinput type=file name=file/p

  输入类型=提交名称=提交

  /表单

  /body

  {% endblock %}

  3.后端代码如下。这个代码可以上传任何格式的文件,没有mcrc类型。

  @csrf_exempt

  定义上传(请求):

  #根名称采用文件的值

  文件=请求。FILES.get(file )

  logger.log()。信息(“上传:% s“%文件”)

  #创建上传文件夹

  如果不是os.path.exists(设置。上传_根):

  os.makedirs(设置。上传_根)

  尝试:

  如果文件不是:

  返回HttpResponse(“请选择要上传的文件”)

  #循环二进制写入

  打开(设置。将_ROOT / file.name, wb )作为f:上传

  for i in file.readlines():

  写作(一)

  e:除外

  返回http响应(e)

  返回HttpResponse(“上传成功”)

  

一、上传文件:

 

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

  #将excel数据写入mysql

  def wrdb(文件名):

  #打开上传excel表格

  readboot=xlrd.open_workbook(设置。UPLOAD_ROOT /文件名)

  sheet=read boot . sheet _ by _ index(0)

  #获取excel的行和列

  nrows=sheet.nrows

  ncols=sheet.ncols

  打印(ncols,nrows)

  SQL= insert into working _ hours(job num,name,workingtime,category,project,date,createtime)值

  对于范围(1,nrows):内的I

  row=sheet.row_values(i)

  jobnum=row[4]

  name=row[5]

  workingtime=row[2]

  类别=行[8]

  项目=行[1]

  date=xldate_as_datetime(row[3],0)。strftime(%Y/%m/%d )

  values=(%s , %s , %s , %s , %s , %s , %s , %s)%(jobnum,name,workingtime,category,project,date,datetime.datetime.now())

  sql=sql值,

  #为了提高操作效率,将数据一次性插入数据库。

  sql=sql[:-1]

  #写入数据库

  # DataConnection是一个自定义的公共模块,使用第三方库来操作数据库。没有ORM,group by等复杂的sql不好操作。

  数据连接。MysqlConnection()。插入( work ,sql)

  @csrf_exempt

  定义上传(请求):

  #根名称采用文件的值

  文件=请求。FILES.get(file )

  打印( uplaod: % s % file )

  #创建上传文件夹

  如果不是os.path.exists(设置。上传_根):

  os.makedirs(设置。上传_根)

  尝试:

  如果文件不是:

  返回HttpResponse(“请选择要上传的文件”)

  #循环二进制写入

  打开(设置。将_ROOT / file.name, wb )作为f:上传

  for i in file.readlines():

  写作(一)

  #写给mysql

  wrdb(文件名)

  e:除外

  返回http响应(e)

  返回HttpResponse(“导入成功”)

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

  关于Django上传excel表格并将数据写入数据库的这篇文章到此结束。关于Django上传excel表格的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: