Django实现excel导入导出

本文详细介绍了如何在Django框架下实现Excel文件的导入和导出功能,包括安装所需库(XlsxWriter, xlrd, openpyxl, pytz),定义模型,设置URL接口,编写上传和下载的实现逻辑。通过上传接口,系统会检查Excel数据的唯一性和数据库中是否存在,确保数据的准确性;导出功能则提供了模板下载,方便用户进行数据填充。

想必大家都困扰于大批量配置的繁琐和沉重的工作量,这个时候采用文件导入导出的方式能较大程度缓解配置带给系统使用人员的精神压力。基于这个目的,本文将详细介绍基于Django如何实现excel文件的导入导出。
工欲善其事,必先利其器。首先需要安装依赖的模块包如下:

  • XlsxWriter
  • xlrd
  • openpyxl
  • pytz

上述功能包下载地址:https://pypi.org/
接下来重头戏。

models.py-定义表模型

class Host_List(models.Model):
    id = models.AutoField
    host_ip = models.CharField(max_length=100,unique=True)
    host_name = models.CharField(max_length=16,null=True,blank=True)
    create_time = models.DateTimeField(auto_now_add=True)

urls.py-定义接口入口

from . import files

urlpatterns = [
    url(r'^upload/',files.upload),
    url(r'^download/',files.download),
]

files.py-编写上传下载实现逻辑

import datetime
import pytz
import json
import operator
from django.core import serializers
import os
import xlrd
import time
import openpyxl
import xlsxwriter
from django.http import HttpResponse,StreamingHttpResponse

def download_template(request,filename):
    date_p = datetime.datetime.now().date()
    str_p = str(date_p)  
    fp = open('/etc/files/static/download/'+filename, 'rb')
    response = StreamingHttpResponse(fp)
    # response = FileResponse(fp)
    response['Content-Type'] = 'application/octet-stream'
    filename=filename.split('.')
    filename=filename[0]+'_'+str_p+'.xlsx'
    response['Content-Disposition'] = 'attachment;filename="%s"' % filename
    return response
    fp.close()
    
def upload(request):
    response={
   
   }
    status='success'
    if request.method == 'POST':
        file_obj = request.FILES.get('file')
        current_time=str(time.time())
        f = open(os.path.join('/etc/files', 'static', 'pic', c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值