vue 在线预览word、excel、pdf、txt、图片
excel文件预览
word文件预览
pdf文件预览
普通图片预览
一、查看word
引用mammoth.js
安装 npm install --save mammoth
引入import mammoth from “mammoth”;
1.页面
<div id="wordView" v-html="vHtml"/></div>
2.数据
data() {return {vHtml: "",wordURL:'' //文件地址,看你对应怎末获取、赋值};
},
created() {// 具体函数调用位置根据情况而定this.readExcelFromRemoteFile(this.wordURL);
}
methods:{// 在线查看word文件readExcelFromRemoteFile: function (url) {var vm = this;var xhr = new XMLHttpRequest();xhr.open("get", url, true);xhr.responseType = "arraybuffer";xhr.onload = function () {if (xhr.status == 200) {mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) }).then(function (resultObject) {vm.$nextTick(() => {// document.querySelector("#wordView").innerHTML =// resultObject.value;vm.vHtml = resultObject.value;});});}};xhr.send();},
}
二、查看Excel
引用sheetjs
安装 npm install --save xlsx
引入import XLSX from “xlsx”;
1.页面
<!-- excel查看详情 --><div id="table" v-if="!isWord"><el-table :data="excelData" style="width: 100%"><el-table-columnv-for="(value, key, index) in excelData[2]":key="index":prop="key":label="key"></el-table-column></el-table></div>
2.数据
data() {return {excelData: [],workbook: {},excelURL: "", //文件地址,看你对应怎末获取、赋值};
},
created() {// 具体函数调用位置根据情况而定this.readWorkbookFromRemoteFile(this.wordURL);
}
methods:{// 在线查看excel文件readWorkbookFromRemoteFile: function (url) {var xhr = new XMLHttpRequest();xhr.open("get", url, true);xhr.responseType = "arraybuffer";let _this = this;xhr.onload = function (e) {if (xhr.status === 200) {var data = new Uint8Array(xhr.response);var workbook = XLSX.read(data, { type: "array" });console.log("workbook", workbook);var sheetNames = workbook.SheetNames; // 工作表名称集合_this.workbook = workbook;_this.getTable(sheetNames[0]);}};xhr.send();},getTable(sheetName) {console.log(sheetName);var worksheet = this.workbook.Sheets[sheetName];this.excelData = XLSX.utils.sheet_to_json(worksheet);console.log(this.excelData);},
}
写的项目
1.页面
<el-dialogtitle="预览"append-to-body:visible.sync="dialog.dialogVisible"><div :class="[checkClass]" class="check" /><div v-if="dialog.isPdf" v-loading="iframeLoading" class="pdfClass"><iframe:src="dialog.src"type="application/x-google-chrome-pdf"/></div><!-- <div v-else-if="dialog.isExcel" class="excelClass" v-html="excelHtml" /> --><div v-else-if="dialog.isExcel"><el-table:data="excelData"borderstripe:header-cell-style="{'background':'#F5F4F7'}"><el-table-columntype="index"label="序号"width="60":resizable="false"align="center"/><el-table-columnv-for="(value, key, index) in excelData[0]":key="index":prop="key":label="key"/></el-table></div><div v-else-if="dialog.isWord" class="wordClass" v-html="wordHtml" /><div v-else class="imgfile"><img:src="dialog.src"alt=""></div></el-dialog>
2.数据
// 预览previewFn(item) {if (!(item.url.includes('.png') || item.url.includes('.jpg') || item.url.includes('.jpeg') || item.url.includes('.bmp') || item.url.includes('.JPG') || item.url.includes('.PNG') || item.url.includes('.JPEG') || item.url.includes('.BMP') || item.url.includes('.pdf') || item.url.includes('.txt') || item.url.includes('.xls') || item.url.includes('.doc'))) {this.$message.error('文件类型不支持预览')return false}if (item.url.includes('.pdf') || item.url.includes('.txt')) {this.dialog.isPdf = truethis.dialog.isExcel = falsethis.dialog.isWord = falsethis.dialog.src = ''this.iframeLoading = truedownloadFileByUniq(encodeURIComponent(item.url)).then(res => {const blob = new Blob([res], { type: item.url.includes('.pdf') ? 'application/pdf;' : '' })const href = window.URL.createObjectURL(blob)this.dialog.src = href}).finally(() => {this.iframeLoading = false})} else if (item.url.includes('.xls')) {this.dialog.isExcel = truethis.dialog.isWord = falsethis.dialog.isPdf = falsedownloadFileByUniq2(encodeURIComponent(item.url)).then(data => {const workbook = XLSX.read(new Uint8Array(data), { type: 'array' }) // 解析数据var worksheet = workbook.Sheets[workbook.SheetNames[0]] // workbook.SheetNames 下存的是该文件每个工作表名字,这里取出第一个工作表// this.excelHtml = XLSX.utils.sheet_to_html(worksheet) // 渲染成htmlconst sheet2JSONOpts = {/** Default value for null/undefined values */defval: ''// 给defval赋值为空的字符串,不然没值的这列就不显示}// 渲染成jsonthis.excelData = XLSX.utils.sheet_to_json(worksheet, sheet2JSONOpts)console.log(this.excelData)})} else if (item.url.includes('.doc')) {var vm = thisthis.dialog.isWord = truethis.dialog.isExcel = falsethis.dialog.isPdf = falsedownloadFileByUniq2(encodeURIComponent(item.url)).then(data => {mammoth.convertToHtml({ arrayBuffer: new Uint8Array(data) }).then(function(resultObject) {vm.$nextTick(() => {vm.wordHtml = resultObject.value})})})} else {this.dialog.isPdf = falsethis.dialog.isExcel = falsethis.dialog.isWord = falsethis.dialog.src = item.downloadUrl}this.dialog.dialogVisible = truethis.checkClass = 'check' + item.intinvoicestatus},}
vue 在线预览word、excel、pdf、txt、图片相关推荐
- 前端在线预览word,excel,pdf
前端在线预览word,excel,pdf 预览Word 预览pdf 预览Excel 预览Word 微软的在线预览功能,可以预览word.ppt.Excel.PDF 局限: 需要外网能访问文件,如果是只 ...
- 在线预览Word、PDF、图片(IE、Edge、Google、FireFox等主流浏览器)
支持IE.Edge.Google.FireFox等主流浏览器处理在线预览Word.PDF.JPG.JPEG等格式文件或图片. var id=ID; if(id!=undefined){var hasI ...
- vue在线预览word,pdf, xls,ppt 文档
首先先踩坑(也不算坑,只是跟我的需求不匹配) 一 ,官方渠道 使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officea ...
- (开源kkFileView、kkOffice)在线预览word、pdf、ofd、excel、ppt、压缩包、图片等等
(开源kkFileView.kkOffice)在线预览word.pdf.ofd.excel.ppt.压缩包.图片等 前言 此项目为文件文档在线预览项目解决方案,对标业内付费产品有[永中office][ ...
- 关于在线预览word,excel,ppt,pdf的需求处理方法。
参考文档:http://www.cnblogs.com/wolf-sun/p/3574278.html 我选用的方案:先用office com组件生成pdf,然后使用pdf.js在线预览pdf文档.在 ...
- h5页面如何预览excel文件_移动端页面,如何解析预览 word/excel/PDF文件?
展开全部 利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加 ...
- vue 在线预览word文件docx
1.npm安装插件 npm i docx-preview 2.index.html文件引入 <script src="https://unpkg.com/jszip/dist/jszi ...
- 在线预览word文档
在线预览word文档 在线预览word文档 Java 使用wps将word文件转换pdf文件 转成PDF 在线预览word(转成pdf)前端展示 欢迎来提更好的意见 在线预览word文档 昨天下午组长 ...
- 使用永中文档实现java在线预览Word,Excel,Pptx,Pdf
使用永中文档实现java在线预览Word,Excel,Pptx,Pdf 永中文档提供了在线预览的功能 永中开发者文档 如果需要直接运行,请直接修改代码中的两个参数 转换类型在下方,根据传入以及输出类型 ...
- Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等
前言 PDF.TXT 只要资源可访问,根本就不需要进行任何处理,直接访问查看就完事了. 也是因为这个PDF可以直接查看(现在浏览器基本支持了),那么我们实现Word文档在线预览,其实也是 把WORD文 ...
最新文章
- python编写的软件界面-为Python程序添加图形化界面的教程
- wordexcelppt文档加密方式
- java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载
- 高并发C/S的TCP版本golang实现
- 物料主数据(MM03)跳转函数
- Linux系统编程---4(进程间通信IPC,管道)
- Nginx实现通过不同的url前缀访问不同的前后端项目
- C# 使用SFTP的上传下载文件时如何使用代理
- understanding the Euler Lagrange equation
- 几人同行时步伐总是整齐
- SqlServer安装Northwind数据库的通用方法
- P 值(p value)与统计检验
- 山东计算机设计大赛,山东大学控制学院本科生获中国大学生计算机设计大赛国家级二等奖...
- 测试人跳槽~怎么说离职原因新的公司比较能接受?
- 使用最大似然估计对NFL球队排名
- ncnn opencv VS2017 window10 yolov5调用摄像头实时目标检测
- 基于时间序列AR模型的PHM预测
- Python用Requests爬虫实现截屏翻译
- O2O无缝营销 将独步天下
- CDH修改静态资源池配置,NodeManager重启失败问题
热门文章
- python怎么随机分组_Python|random之随机抽人分组
- php 删除前后空格,php怎么去除前面空格
- Windows操作系统中“源路径太长”问题的解决办法
- linuxshell编程_使shell命令发包软件-当你在Linux shell调用外部程序,如
- C语言入门经典(第四版).pdf
- 计算机硬盘 安装,电脑新硬盘如何安装系统
- 计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题
- Java后端学习路线
- 优酷土豆并购是如虎添翼
- Microsoft Visio-Microsoft Visio下载