@csrf_exemptdefimportExecl(request):# Receiving excelif request.method !='POST':return response.failResponse('Request method exception')try:
excel = request.FILES.get('excel','')ifnot excel:return response.failResponse('params exception')# open file
data = xlrd.open_workbook(filename=None, file_contents=excel.read())# Get worksheet by file name, get sheet 1
table = data.sheet_by_name('Sheet1')
params =[]
n = table.nrows
for i inrange(1, n):
params.append(table.row_values(i))return response.responseWithData('Upload Execl Successful', params)except Exception as e:# record error logreturn response.failResponse('Failed to Upload execl')
导出zip
# Export the personal zip package@csrf_exemptdefimportZip(request):if request.method !='POST':return response.failResponse('Request method exception')try:
marname =str(request.GET.POST('marname',''))ifnot marname:return response.failResponse('params exception')# md5 Encrypted storage
p_m = hashlib.md5()
p_m.update(marname.encode())# storage path
path = settings.IMAGE_ROOT +'/'+str(p_m.hexdigest())+'/'# 判断下载文件是否存在ifnot os.path.isdir(path):return response.failResponse('dirs is not exist')
zipname = marname +'.zip'# 压缩后文件夹的path
z = zipfile.ZipFile(zipname,'w', zipfile.ZIP_DEFLATED)for dir_path, dir_names, file_names in os.walk(path):
f_path = dir_path.replace(path,'')# 这一句很重要,不replace的话,就从根目录开始复制
f_path = f_path and f_path + os.sep or''# 实现当前文件夹以及包含的所有文件的压缩for filename in file_names:
z.write(os.path.join(dir_path, filename), f_path + filename)
z =open(zipname,'rb')
data = z.read()
z.close()
os.remove(z.name)
res = HttpResponse(data, content_type='application/zip')from urllib import parse
res['Content-Disposition']='attachment;filename='+ parse.quote(zipname)return res
except Exception as e:return response.failResponse('Failed to import zip')
接收excel@csrf_exemptdef importExecl(request): # Receiving excel if request.method != 'POST': return response.failResponse('Request method exception') try: excel = request.FILES.get('excel', '') if not excel or not marI