JS实现文件上传与下载,PDF与Excel的操作
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了"JS实现文件上传与下载,PDF与Excel的操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年02月23日JS实现文件上传与下载,PDF与Excel的操作
本篇内容介绍了"JS实现文件上传与下载,PDF与Excel的操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.文件上传
前端代码
选取文件 上传到服务器 只能上传jpg/png文件,且不超过500kb
JS代码
在使用
el-upload
组件时,会有页面上渲染两个上传
按钮,可以使用CSS把原生的上传按钮隐藏起来
input[type="file"] { display: none;}
后端代码
import osimport timefrom django.views.decorators.csrf import csrf_exemptdef check_upload_wrapper(func): def inner(*args, **kwargs): if not os.path.exists("upload/"): os.makedirs("upload/") return func(*args, **kwargs) return inner@csrf_exempt # 取消csrf认证,可以不使用这个装饰器@check_upload_wrapper # 装饰器,检查后台是否有`upload/`目录,如果没有则创建def upload_temp(request): file_obj = request.FILES.get('file') # 获取上传的文件对象 t = time.strftime('%Y%m%d%H%M%S') now_file_name = t + '.' + file_obj.name.split('.')[1] # 得到文件在后台的保存名字 file_path = os.path.join('upload', now_file_name) with open(file_path, "wb") as f: for line in file_obj.chunks(): f.write(line) return JsonResponse({'result': True, 'data': file_path}) # 必须要返回文件保存路径
2.文件下载
前端代码
下载
后端代码
from django.utils.encoding import escape_uri_pathfrom django.http import HttpResponsedef download(request): file_name = u"合并.pdf" file = open(file_name, 'rb') response = HttpResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = "attachment;filename*=utf-8''{}".format(escape_uri_path(file_name)) return response
3.PDF文件合并
pdffile1 = open(r'file1.pdf', 'rb')pdffile2 = open(r'file2.pdf', 'rb')pdf1_reader = PyPDF2.PdfFileReader(pdffile1)pdf2_reader = PyPDF2.PdfFileReader(pdffile2)# 创建一个pdf文档,这个只是代表pdf文档的值,并没有创建实际的文档。pdf_writer = PyPDF2.PdfFileWriter()# 将文档一页一页的读入到新的文档for pagenum in range(pdf1_reader.numPages): pageobj = pdf1_reader.getPage(pagenum) pdf_writer.addPage(pageobj)for pagenum in range(pdf2_reader.numPages): pageobj = pdf2_reader.getPage(pagenum) pdf_writer.addPage(pageobj)# write方法才能真正生成一个文件pdfoutputfile = open(u'合并.pdf', 'wb')pdf_writer.write(pdfoutputfile)pdfoutputfile.close()pdffile1.close()pdffile2.close()
4.读取Excel文件
# 读取Excel文件def read_excel(): # 路径前加 r,读取的文件路径 file_path = r'file1.xlsx' # 文件路径的中文转码 file_path = file_path.decode('utf-8') # 获取数据 data = xlrd.open_workbook(file_path) # 获取sheet,通常为 Sheet1 table = data.sheet_by_name(u'Sheet1) # 获取excel文件的总行数 nrows = table.nrows # 从第二行开始读取数据 for i in range(1, nrows): # 读取每一行第一列的数据 value1 = table.cell(i, 0).value.strip() # 读取每一行第二列的数据 value2 = table.cell(i, 1).value.strip()
5.写入Excel文件
5.1 xlwt 模块写入Excel文件
def write_excel(sheet_name, titles, col1, col2): f = xlwt.Workbook() # 添加一个Sheet,名字为 sheet_name 所传的参数 sheet1 = f.add_sheet(sheet_name, cell_overwrite_ok=True) # 写文件头 for i in range(0, len(titles)): # i 表示第一行的第 i 列 sheet1.write(0, i, titles[i]) # 从第二行开始写入数据 for i in range(0, len(col1)): # 向每一行的第1列写入数据 sheet1.write(i + 1, 0, col1[i]) # 向每一行的第2列写入数据 sheet1.write(i + 1, 1, col2[i]) # 第一个参数表示行,从0开始计算 # 第二个参数表示列,从0开始计算 # 第二个参数表示写入的数据 # sheet1.write(1, 3, '2006/12/12') # 第一个参数:合并开始的行 # 第二个参数:合并结束的行(可以一次合并多行) # 第三个参数:合并开始的列 # 第四个参数:合并结束的列(可以一次合并多行多列) # 第五个参数:写入的数据 sheet1.write_merge(1, 3, 3, 3, u'打游戏') # 合并列单元格 sheet1.write_merge(4, 10, 3, 4, u'打篮球') f.save('%s.xls' % sheet_name)
5.2 xlsxwriter 模块写入Excel文件
def write_excel1(): # 新建文件,文件名为: hello.xlsx workbook = xlsxwriter.Workbook('hello.xlsx') # 建立sheet,可以传入参数来指定sheet名 worksheet = workbook.add_worksheet(u"任平生") titles = [u"姓名", u"年龄", u"出生日期", u"爱好"] col1 = [u"张三", u"李四", u"恋习Python", u"小明", u"小红", u"无名"] col2 = [12, 13, 14, 15, 16, 17] # 写入文件头部 for i in range(len(titles)): worksheet.write(0, i, titles[i]) # 写入文件内容 for j in range(len(col1)): # 从第二行开始向每行的第一列写入数据 worksheet.write(j + 1, 0, col1[j]) # 从第二行开始向每行的第二列写入数据 worksheet.write(j + 1, 1, col2[j]) workbook.close()
"JS实现文件上传与下载,PDF与Excel的操作"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
数据
参数
一行
代码
文档
路径
内容
前端
名字
后台
实际
按钮
更多
模块
知识
多行
学有所成
接下来
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
帝国一件删除栏目数据库
简单网络安全手抄报三年级的
部队网络安全泄密案例
网络营销软件开发优势
服务器可以在外地用吗
疫情软件开发需要哪些工具
热门软件开发题目
数据库切分
自己的vpn服务器地址
服务器软件 源码
江苏定制软件开发项目信息
要测试与DNS服务器的连通性
塔式服务器包括什么服务器
服务器数据库怎么防护
如何构建dns服务器
慕课大学中国解放军网络技术
数据库like速度优化
深圳国信互联网科技有限公司
崩坏2纯白女神是哪个服务器
沈阳对日软件开发公司有哪些
网络安全责任险投保资料
热门软件开发题目
服务器远程桌面许可
数据库sa账户一直锁定
国家经济研究院数据库官网
营口团市委开展网络安全宣传
深圳智能软件开发服务费
rpc服务器不可用的原因和处理
如何构建dns服务器
数据库图表怎么设置时间