Django上传与读取excel

it2022-05-05  138

(一)简介

前端通过FormData传递文件,后端通过 file = request.FILES.get('fileContent') 与 xlrd.open_workbook读取

(二)前端代码

不用form表单

$("#detail_submit").on("click", function () { //创建FormData用于存储文件内容 var dict = new FormData(); dict.append("fileName", document.getElementById('file_up').value); dict.append("fileContent", document.getElementById('file_up').files[0]); dict.append('csrfmiddlewaretoken', '{{ csrf_token }}') $.ajax({ url: '/batch_pay_deal/', type: 'post', data: dict, processData: false,// 告诉jQuery不要去处理发送的数据(必须设置) contentType: false, // 告诉jQuery不要去设置Content-Type请求头(必须设置) {#dataType: 'JSON',#} success: function (data) { alert(data['result']) if (data['result']===('ok') ){ alert(11) $(".mainbox").load('/batch_pay_success/') } } }) })

(三)后端代码

路由:

views:

def batch_pay_deal(request): if request.method =="POST": # 获取普通input标签值,即文件名 filename = request.POST.get('fileName') # 获取file类型的input标签值,即文件内容 file = request.FILES.get('fileContent') data = xlrd.open_workbook( filename=None, file_contents=file.read()) # 读取表格 table = data.sheets()[0] # 第一张表单 row = table.nrows for i in range(1, row): # 跳过第0行 col = table.row_values(i) # deal_date = col[1] recieve_account = str(int(col[11])) recieve_name = col[12] money = float(col[13]) return JsonResponse({'result':'ok'})

 


最新回复(0)