96SEO 2026-02-23 11:42 9
在一个愉快的年后需求经理提出需要完成对单个Excel文件的上传、下载、预览的功能对于一个没写过下载和预览的后端来说真的十分痛苦经过不断百度努力看别人的博客最终实现如下图所示

13px仅支持单文件上传文件上传行数最多1000上传格式支持.xls
namefile是传到后端时它接收这个文件的参数名叫file本人没有仔细研究因为在调接口时可个性化定制参数名后续贴的代码会提到。
action这个Element官方文档写的是一个上传的固定链接假的用不了。
通常在开发中也是自定义上传逻辑所以这里置空。
drag启用拖拽上传Element默认是false直接写drag不写:dragtrue就是true了。
show-file-list显示已上传文件列表就是上传框下面的那行文件名Element默认是false
accept.xls,.xlsx接受上传的文件类型我的需求是只要Excel的。
:on-removehandleRemove文件列表移除文件时的方法就是文件列表右边那个小X触发时调用的。
:on-successhandleSuccess文件上传成功时的方法比如弹出一个上传成功提示。
:before-uploadbeforeUpload上传文件之前的方法通常用于上传文件前对文件的校验。
:http-requesthandleRequest自定义上传方式的方法比如远程调用。
:on-exceedhandleExceed文件超出个数限制时的方法比如弹出一个仅支持单个文件的提示。
classel-upload__tip这个是Element封装好的样式我的需求是需要文字在上传框里显示所以都用el-upload__tip官方文档还有个框外的用el-upload__text。
文件上传成功的回调this.$message.success(上传成功);},handleRemove(file,
看需要是否调用删除接口},beforeUpload(file)
警告this.$message.warning(文件大小不能超过
这个file就是后端的接收这个文件的参数名如果为其他则设成其他formData.append(file,
发送请求这个uploadApi是import进来的自己写uploadApi(formData).***n(res
自定义上传方法的话需要手动触发文件上传成功的钩子不然文件状态会一直处于readyoption.onSuccess(null,
自定义上传方法的话需要手动触发文件上传失败的钩子不然文件状态会一直处于readyoption.onError(error,
文件超出个数限制时的钩子handleExceed(files,
{this.$message.warning(仅支持单个文件上传);},},
我是通过a/a标签去实现文件下载的如果想通过点击按钮实现那么在按钮里面套塞a/a即可
http://static.shanhuxueyuan.com/demo/excel.xlsx};},
这个href放是一个像http://static.shanhuxueyuan.com/demo/excel.xlsx这样的cdn文件地址点击就可以直接下载到本地。
如果需要通过二进制流、Blob对象实现的话则自定义按钮触发方法去调用。
详情请看方式二
clickdownloadFile(fileName)span
Date().toISOString().split(T)[0],
XLSX.utils.aoa_to_sheet(data);//
XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,});//
document.createElement(a);link.href
URL.createObjectURL(blob);link.download
对象URL.revokeObjectURL(link.href);this.$message.success(文件下载成功);},}
http://static.shanhuxueyuan.com/demo/excel.xlsx};},
vue-office/excel/lib/index.css;
ArrayBuffer以ArrayBuffer格式读取Excel文件的内容//
{console.log(渲染完成);},errorHandler()
{console.log(渲染失败);},getExcel()
这样直接就是浏览器新打开一个标签页展示文件内容。
与文件下载十分相似。
vue-office/excel/lib/index.css;
ArrayBuffer以ArrayBuffer格式读取Excel文件的内容//
{this.createRandomExcel();},methods:
{console.log(渲染完成);},errorHandler()
Date().toISOString().split(T)[0],
XLSX.utils.aoa_to_sheet(data);//
XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,});this.excel
/script上述代码也适用于展示Word和PPT文件修改对应的格式即可。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback