首页 > 其他分享 >在线预览文件-word、excel、图片、ppt

在线预览文件-word、excel、图片、ppt

时间:2023-11-06 11:45:50浏览次数:29  
标签:word fileType excel js record ppt const document

vue中引入插件 

VueOffice,npm下载,以下插件需要单独下载

VueOfficeDocx VueOfficeExcel
<template>
    <div style="height: 700px; overflow: auto;"><vue-office-docx style="min-height: 700px;" :src="excel" @rendered="rendered"/></div>
</template>
<script>
import VueOfficeDocx from '@vue-office/docx'; // VueOfficeExcel类似
export default {
    components: { VueOfficeDocx },
    data() {
        excel: '', // excel可以为链接,也可以是后端返回的二进制文件
    },
    methods: {
        rendered() {},
    }
}
</script>

ppt预览:pptx插件下载,直接放当前文件夹下面,需要的文件有:jquery.js  jszip.js  filereader.js  pptx.js  pptxjs.css;

在pptxjs官网下载

<template>
    <div style="width: 100%; height: 700px; overflow: auto;"><div id="slide-resolte-contaniner" style="width: 100%; min-height: 700px;"></div></div>
</template>

<script>
export default {
    mounted() {
        const jqueryScript = document.createElement('script');
        jqueryScript.src = '/js/jquery.js'; // jQuery的JS文件路径
        jqueryScript.onload = () => {
            this.$ = window.jQuery;
            const jszip = document.createElement('script');
            jszip.src = '/js/jszip.js';
            const fileReaderJS = document.createElement('script');
            fileReaderJS.src = '/js/filereader.js';
            fileReaderJS.onload = () => {
                const pptxScript = document.createElement('script');
                pptxScript.src = '/js/pptx.js'; // pptx.js的JS文件路径
                document.body.appendChild(pptxScript);
            };
            document.body.appendChild(jszip);
            document.body.appendChild(fileReaderJS);
        };
        document.body.appendChild(jqueryScript);
        this.$nextTick(() => {
            this.loadData();
        });
    },
    methods: {
        loadData() {
            this.$nextTick(() => {
                    this.$('#slide-resolte-contaniner').pptxToHtml({
                        pptxFileUrl: res.data,
                        pptxFileName: record.fileName,
                        slidesScale: '50%',
                        slideMode: false,
                        keyBoardShortCut: false,
                    });
                });
        },
    },
}
</script>

主页面index.vue

<template>
    <div>
        <excel-vue v-if="showModalExcel" ref="excel"></excel-vue>
        <docx-vue v-if="showModalDocx" ref="docx"></docx-vue>
        <ppt-vue v-if="showModalPpt" ref="ppt"></ppt-vue>
    </div>
</template>

<script>
import Api from '@/api';
import excelVue from './excel';
import docxVue from './docx';
import pptVue from './ppt';
export default {
    components: {
        excelVue,
        docxVue,
        pptVue,
    },
    data() {
        return {
            showModalExcel: false,
            showModalDocx: false,
            showModalPpt: false,
        };
    },
    methods: {
        handlePreview(record) {
            let { fileType, fileName } = record;
            // .pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.jpg,.png
            if (fileType == 'xlsx' || fileType == 'xls') {
                this.showModalExcel = true;
                setTimeout(() => {
                    this.$refs.excel.init(record);
                }, 100);
            } else if (fileType == 'docx' || fileType == 'doc') {
                this.showModalDocx = true;
                setTimeout(() => {
                    this.$refs.docx.init(record);
                }, 100);
            } else if (fileType == 'ppt' || fileType == 'pptx') {
                this.showModalPpt = true;
                setTimeout(() => {
                    this.$refs.ppt.init(record);
                }, 100);
            } else {
                Api.preview({ id: record.id, fileName: record.fileName }).then(res => {
                    const blob = new Blob([res.data], { type: 'image/' + record.fileType }); // 根据实际情况设置 MIME 类型
                    // 创建临时的 URL
                    const imageUrl = URL.createObjectURL(blob);
                    window.open(imageUrl, fileName, 'height=700,width=1000');
                });
            }
        },
    },
};
</script>

接口中:

export function preview(parameter) {
    return axios({
        url: url,
        method: 'get',
        params: parameter,
        responseType: 'blob',
    });
}

 

  

标签:word,fileType,excel,js,record,ppt,const,document
From: https://www.cnblogs.com/xyulz/p/17812301.html

相关文章

  • 《AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》阅
    论文标题《ANIMAGEISWORTH16X16WORDS:TRANSFORMERSFORIMAGERECOGNITIONATSCALE》谷歌论文起名越来越写意了,“一幅图像值16X16个单词”是什么玩意儿。ATSCALE:说明适合大规模的图片识别,也许小规模的不好使作者来自GoogleResearch的Brain团队,经典的同等贡献......
  • # yyds干货盘点 #3个Excel表格中每个门店物品不同,想要汇总在一起(方法四)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。上一篇文章中,我们已经看到了三种解决办法了,这一篇文章我们一起来看看另外一种方法。二、实现过程这里【瑜亮老师】给了concat纵向合并的方式能操作的方法,代码如下......
  • 使用openpyxl库读取Excel文件数据
    在Python中,我们经常需要读取和处理Excel文件中的数据。openpyxl是一个功能强大的库,可以轻松地实现Excel文件的读写操作。本文将介绍如何使用openpyxl库读取Excel文件中的数据。1.导入所需库首先,我们需要导入openpyxl库,这个库提供了许多用于操作Excel文件的功能。fromopenpyx......
  • word文档工具栏不见了怎么办
    方法步骤如下1打开WORD文档,点击左上角的“文件”2点击左侧菜单栏的“选项”3在自定义功能区中,勾选需要显示的菜单选项,然后点击确定即可4返回主文档,发现Word文档菜单栏相应选项工具已恢复显示。1以Word2010版本为例,如下Word文档上面的菜单栏不见了2当用鼠标点击上面的某一个功能项......
  • Excel统计某字符或关键字出现的次数
    原始数据区域为A1:A5,每个单元格中包含不同或相同的文本,要根据需求求某个字符或关键字在各单元格文本中出现的次数总和。首先,求“北京”出现的次数(整个单元格内容等于“北京”)。我们输入公式:=COUNTIF(A1:A5,”北京”)结果返回1,因为源数据中只有A1单元格整个文本内容是“北京”。然......
  • EXCEL中怎样将一列内容转成一行
    打开需要处理的EXCEL文档全选需要以行排列的一列内容鼠标右键或ctrl+c复制在一空白行中的单元格内,点击鼠标右键找到并单击选择性粘贴,在弹出的窗体中选择转置完成列转行操作......
  • word中如何在双栏排版中插入单栏排版内容
    在需要单栏排版的部分,将光标定位到该部分的开头和结尾。分别点击“布局”选项卡,在“页面设置”组中找到“分隔符”选项,然后选择连续分节符(开头与结尾都需要)。这样就在当前位置插入了一个分隔符,建议在Word选项中将显示打开。接下你可以在两个分节符之间单独设置单栏排版。将......
  • Aspose.Words for Java21.11去除水印和数量限制
    前言工欲善其事,必先利其器目前用到了word转pdf,然后开始研究大佬的文章,用于个人学习,首先感谢!源码分析1.下载Aspose.WordsforJava21.11官方jar包2.开始分析调用授权方法InputStreamis=newFileInputStream("..license.xml");Licenselicense=newLicense();license.setLi......
  • 使用Python将多个工作表保存到一个Excel文件中
    使用Python将多个工作表保存到一个Excel文件中excelperfect标签:Python与Excel,pandas本文讲解使用Pythonpandas将多个工作表保存到一个相同的Excel文件中。按照惯例,我们使用df代表数据框架,pd代表pandas。我们仍将使用df.to_excel()方法,但我们需要另一个类pd.ExcelWriter()的......
  • java笔记_15_动态生成Excel文件
    //创建表头数据//内层List按纵向创建,外层List按横向添加,横向重复的名称会自动合并表格。List<List<String>>list=newArrayList<>();List<String>childList1=newArrayList<>();childList1.add("aaa");childList1.add("bbb");childList1.add......