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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。