Django上传excel文件

先安装模块

pip3 install xlrd   安装xlrd包对表格数据进行解析

在子应用统计目录下创建upload文件夹,然后去settings.py 配置

UPLOAD_ROOT = os.path.join(BASE_DIR,'upload')

当表单中有上传文件时,图片/表格文件,可以如下提交

下面这个方法function 是可以将form里的所有值都传过去,但是上传文件的话上面form一定要写 enctype=“multipart/form-data” 属性


后台代码,写入文件操作

# 首先引入配置的 settings
from jiyun import settings
# 根name取 file 的值
file = request.FILES.get('file')

# 循环二进制写入		括号里是settings 配置的路径
with open(settings.UPLOAD_ROOT+"/"+file.name,'wb') as f:
              for i in file.readlines():
                   f.write(i)

打开文件操作


# 打开本地的文件
excel = xlrd.open_workbook(settings.UPLOAD_ROOT+"/"+file.name)
excel.sheet_names()

#  获取 sheet_by_index(0) 下标是0 的value
sheet = excel.sheet_by_index(0)
#	sheet.row_values(1) 	当前下标的值,打印出来看下就知道
print(sheet.row_values(1))

#	sheet.nrows 总行数   sheet.ncols 总列数
print(sheet.nrows)
print(sheet.ncols)

以上是上传到了本地,而且打开查看 value,如果要入库的话,因为文件很多数据,所以不适合依次操作数据库,应该封装好一次入库

sql_list = []
 # 遍历从1 下标 到总行数  Student表入库
for i in range(1,sheet.nrows):
        sql_list.append(Student(name=sheet.row_values(i)[0],class_id=c.id))
Student.objects.bulk_create(sql_list)

你可能感兴趣的:(Django,Jquery)