项目采用前后端分离的思路,服务器端用iis部署纯前端页面,并运行Django后台接口供前端调用
- Django接口部署参考:Windows服务器部署Django接口
- Django的项目url配置之类的内容省略,可以参考:Django网课笔记
需求
将一组表头相同的仅包含一个sheet的excel表格进行合并,生成一个仅包含一个sheet的总表文件
后端Django
项目很简单,在一些细节上花费的时间相对较长
接口函数
思路
接收来自前端的文件并传递给文件处理函数,返回最终的文件到前端
详细实现
- 在存储文件的总文件夹下新建一个文件夹作为本次处理的文件夹,该文件夹的名字是函数执行时间的年月日时分秒加一个1000以内的随机数,保证文件夹名称不重复
- 将接受的文件存在该文件夹下,并将这个文件夹的完整路径传给拼接处理函数并返回总表文件的完整路径
- 用函数删除除总表外的excel文件,并返回总表文件
def upload_file(request):
filePath = 'C:/web/concat_django/excels/' #存储文件的总文件夹的完整路径
# filePath = 'E:/web/'
datename = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) + '_' + str(random.randint(0,1000)) # 本次文件夹的名称,用时间和随机数保证独一无二
os.makedirs(filePath + datename) # 新建文件夹
filePath = filePath + datename + '/'
if request.method == "POST": # 请求方法为POST时,进行处理
# 存储请求中的所有文件
files