vue3 查看word pdf excel文件

ops/2024/11/18 9:23:43/

也是在网上找的基础上修改的 可以直接使用

npm install @vue-office/docx
npm install @vue-office/excel
npm install @vue-office/pdf
<template><divclass="Office-Preview"v-loading="loading"element-loading-text="文件加载中..."><VueOfficeDocxv-if="fileType === 'docx'":src="fileUrl"@rendered="rendered"@error="onError"></VueOfficeDocx><VueOfficeExcelv-if="fileType === 'excel'":src="fileUrl"@rendered="rendered"@error="onError"></VueOfficeExcel><VueOfficePdfv-if="fileType === 'pdf'":src="fileUrl"@rendered="rendered"@error="onError"></VueOfficePdf><el-emptyv-if="fileType === 'errType'"image=""description="文件格式不规范":image-size="300"></el-empty><el-emptyv-if="fileType === 'loadErr'"image=""description="文件加载失败":image-size="300"></el-empty></div>
</template><script setup>
import { ref, onMounted } from 'vue';
import { useRoute } from 'vue-router';// 引入 VueOffice 相关组件
import VueOfficeDocx from '@vue-office/docx';
import VueOfficeExcel from '@vue-office/excel';
import '@vue-office/excel/lib/index.css';
import VueOfficePdf from '@vue-office/pdf';// 使用 useRoute 获取链接参数
const route = useRoute();
const fileUrl = ref(route.query.url || ''); // 从 URL 参数中获取 fileUrl// 定义响应式数据
const fileType = ref('');
const loading = ref(true);const init = () => {word">if (!fileUrl.value) {console.error('文件为空');loading.value = false;return;}const fileName = fileUrl.value.split('/').pop();const fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1);word">if (fileExtension === 'doc' || fileExtension === 'docx') {fileType.value = 'docx';} word">else word">if (fileExtension === 'xls' || fileExtension === 'xlsx') {fileType.value = 'excel';} word">else word">if (fileExtension === 'pdf') {fileType.value = 'pdf';} word">else word">if (fileExtension === 'ppt' || fileExtension === 'pptx') {fileType.value = 'ppt';} word">else {fileType.value = 'errType';loading.value = false;}
};// 渲染和错误处理方法
const rendered = () => {console.log('渲染完成');loading.value = false;
};const onError = () => {console.error('加载出错');loading.value = false;fileType.value = 'loadErr';
};// 使用 Vue 3 的 onMounted 生命周期钩子
onMounted(() => {init();
});
</script><style scoped lang="scss">
.Office-Preview {overflow-y: scroll;height: 100%;
}
</style>

http://www.ppmy.cn/ops/134669.html

相关文章

2024.11|云计算行业的商业模式创新方法及实践

截至2024年&#xff0c;全球云计算行业已迈入一个全新的发展阶段。从基础设施即服务&#xff08;IaaS&#xff09;到基于人工智能的大规模模型平台&#xff0c;云计算技术的演变不仅改变了技术的内涵&#xff0c;也重新定义了商业模式。本文通过对全球最新技术进展的系统性分析…

ARM 汇编指令

blr指令的基本概念和用途 在 ARM64 汇编中&#xff0c;blr是 “Branch with Link to Register” 的缩写。它是一种分支指令&#xff0c;主要用于跳转到一个由寄存器指定的地址&#xff0c;并将返回地址保存到链接寄存器&#xff08;Link Register&#xff0c;LR&#xff09;中。…

2020 年 12 月青少年软编等考 C 语言三级真题解析

目录 T1. 完美立方思路分析 T2. 不定方程求解思路分析 T3. 分解因数思路分析 T4. 上台阶思路分析 T5. 田忌赛马思路分析 T1. 完美立方 形如 a 3 b 3 c 3 d 3 a^3 b^3 c^3 d^3 a3b3c3d3 的等式被称为完美立方等式。例如 1 2 3 6 3 8 3 1 0 3 12^3 6^3 8^3 10^3 1…

Java复习41(PTA)

jmu-Java-m06 根据姓名以及电话号码查找联系人 分数 20 全屏浏览 切换布局 作者 郑如滨 单位 集美大学 该程序包含&#xff1a; Person类: 属性&#xff1a;int id, String name, String phoneNumber&#xff0c;String address。 方法&#xff1a; 无参构造方法&#…

基于Hadoop、hive的数仓搭建实践

文章目录 架构图Hadoop搭建Hive 搭建MySQL搭建官网文档下载配置配置hive环境变量配置日志文件配置hive-site 复制mysql 驱动包删除日志包初始化元数据启动metastore服务使用hive CLI启动hiveServer2访问hiveserver2客户端连接beeline shell连接 Dbeaver连接经验 基于HDFS Hive…

前端三大组件之CSS,三大选择器,游戏网页仿写

回顾 full stack全栈 Web前端三大组件 结构(html) 样式(css) 动作/交互(js) --- 》 框架vue&#xff0c;安哥拉 div 常用的标签 扩展标签 列表 ul/ol order——有序号 unordered——没序号的黑点 <!DOCTYPE html> <html><head><meta charset"…

web前端开发网页--css样式的使用

1、css层叠性 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>css层叠性</title><style type"text/css">p{font-size: 12px;font-family: "微软雅黑";}.special{font-size: 24px;}#one{c…

基于java+ssm+Vue的校园美食交流系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…