文档章节

django 上传,下载excel

一一无念
 一一无念
发布于 2017/01/14 15:31
字数 364
阅读 696
收藏 0

关于这里只把示例部分的url.py view.py html模板部分

url.py

from django.conf.urls import include, url
from django.contrib import admin
from mysites.views import index, upload_file, report_down_load

urlpatterns = [
    # Examples:
    # url(r'^$', 'untitled1.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'^index/$', index),
    url(r'^upload_file/$', upload_file),
    url(r'^report_down_load/$', report_down_load),
]

view.py

from django.http import HttpResponse
from django.shortcuts import render, render_to_response
import os
import xlrd

# Create your views here.
from django.template import RequestContext
from django.views.decorators.csrf import csrf_exempt


def index(request):
    return render_to_response("index.html", '', context_instance=RequestContext(request))


@csrf_exempt
def upload_file(request):
    if request.method == 'POST':
        myFile = request.FILES.get('myfile', None)
        if not myFile:
            return HttpResponse('no file for upload')
        excelFile = open(os.path.join('/Users/eruake/Desktop/code/hkwork/untitled1/', myFile.name), 'wb+')
        for chunk in myFile.chunks():
            excelFile.write(chunk)
            excelFile.close()
        #
        excel = xlrd.open_workbook('/Users/eruake/Desktop/code/hkwork/untitled1/'+myFile.name)
        sheet = excel.sheet_by_index(0)

        # sheet = excel.sheet_by_name('mywork')
        nrows = sheet.nrows
        for i in range(nrows):
            # get value you can save to database
            v = sheet.cell(0, 0).value

        return HttpResponse('upload over!')

import xlwt
import django.utils.timezone as timezone

@csrf_exempt
def report_down_load(request):
    wb = xlwt.Workbook()
    sheet = wb.add_sheet('report')
    filename = timezone.now().strftime("%Y%m%d %H%M%S") + '.xls'
    # 
    # set data
    # and set xls file style 这里要说明一点的时,我们可以设置excel模板的样式,可以通过xlrd先读取,再使用xlutils.copy
    # 来实现写,但是由于xlutils是不能读取复制样式,如背景颜色 字体样式等 所以我建议直接使用xlwt来控制样式
    response = HttpResponse(content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename=' + filename
    wb.save(response)
    return response

template 里的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form enctype="multipart/form-data" action="/upload_file/" method="post">
   <input type="file" name="myfile" />
   <br/>
   <input type="submit" value="upload"/>

</form>

<p>------------------------</p>
<form enctype="multipart/form-data" action="/report_down_load/" method="post">
    <input type="submit" value="download"/>
</form>
</body>
</html>

 

© 著作权归作者所有

一一无念
粉丝 58
博文 36
码字总数 18408
作品 0
长沙
私信 提问
最新Django2.0.1在线教育零基础到上线教程(十三)

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGetStarted 教程仓库地址2: https://github.com/mtianyan/Mxonline2 教程仓库地址3: https://gi......

天涯明月笙
2018/02/09
0
0
centos yum安装python2.7及常见报错处理

一、安装步骤如下: 1)安装开发工具 yum groupinstall "Development tools" 2)安装编译Python需要的软件包 yum install zlib-devel yum install bzip2-devel yum install openssl-devel y......

卫庄的痛
2017/01/05
0
0
基于PHPExcel库的EXCEL导入导出

PHPExcel类是php一个excel表格处理插件,最近由于工作需要用到了这个插件,完成了一个excel导入导入的功能。现在将主要逻辑整理一下和大家分享,有需要的可以参考一下。 下面的事例只是完成了...

r-ricky
2015/06/19
248
0
Django打造文件分享系统

本教程介绍如何使用Django框架快速打造文件分享系统,实现搜索功能,分享功能,用户分享文件查询。通过本课程,我们可以快速掌握Django的基础,以及一些ORM和View的高级用法。本课程适用于有...

实验楼
2017/12/22
0
0
将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化

版权声明:本文为博主Lynn&Lingfei原创文章,未经博主允许不得转载。 https://blog.csdn.net/meng564764406/article/details/52444644 本篇文章是根据我的上篇博客,给出的改进版,由于时间有...

Lynn_Meng
2016/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=falsejdbc.username=rootjdbc.pas......

行者终成事
26分钟前
3
0
从 Storm 到 Flink,汽车之家基于 Flink 的实时 SQL 平台设计思路与实践

在 2019 年之前,之家的大部分实时业务都是运行在 Storm 之上的。Storm 作为早期主流的实时计算引擎,凭借简单的 Spout 和 Bolt 编程模型以及集群本身的稳定性,俘获了大批用户。下图是实时计...

阿里云官方博客
26分钟前
4
0
网络安全-Day04

2.1.1 什么是SQL注入 2.1.2 注入分类 2.1.3 MySQL手工注入 2.1.4 sqlmap使用 2.1.5 总结 什么是SQL注入 SQL注入漏洞原理 什么是SQL 结构化查询语言(Structured Query Language),是一种特殊目...

Jerry1101
26分钟前
3
0
docker容器内安装yum,vim等命令,以及配置ls指令

使用国内镜像 mv /etc/apt/sources.list /etc/apt/sources.list.bakecho "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.listecho "deb http://......

长恭
27分钟前
3
0
超详细的MySQL8.0.17版本安装教程

下载MySQL MySQL的官网地址:https://www.mysql.com/。 如下图所示: 然后点击DOWNLOADS ==> Community,选择MySQL Community Server。如图所示: 滑到页面的最下面,找到Recommended Downl...

彩色泡泡糖
30分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部