当前位置: 首页 > news >正文

在线预览Word、Excel、PowerPoint等文件

在我们工作时,经常会有在线查看各种不同类型的文件的需要,如Word文档、Excel表格、PowerPoint幻灯片和PDF等。可以直接在这里预览:https://www.compdf.com/webviewer/demo

Word 文件实现前端预览

方案一:

使用 XDOC 可以实现预览以 DataURI 表示的 word 文档,此外 XDOC 还可以实现文本、带参数文本、html文本、json文本、公文等在线预览,具体实现方法请看官方文档

下面是使用 XDOC 实现预览 DOCX 文档的代码示例:

注意:文档地址要用utf-8编码,并且外网可访问

示例代码:

window.open("https://view.xdocin.com/view?src=" + encodeURIComponent("https://view.xdocin.com/demo/view.docx"));

方案二:

使用 docx-preview 开源组件实现 word 文件预览

  1. npm 安装 docx-preview

  2. 获取 word文档 blob 数据流

  3. 调用 docx-preview 提供的 renderAsync 方法,并将获取的 blob 数据流传入方法中,渲染word文档

示例代码:

import Axios from "axios";
import { renderAsync } from "docx-preview";Axios.get('文档下载路径',{responseType: 'blob'
}).then(({data}) => {renderAsync(data, document.getElementById("container")) // 渲染到页面
})

Excel 文件实现前端预览

  1. 使用 npm 命令安装库:

    npm i exceljs handsontable @handsontable/vue

  2. 使用 exceljs 解析数据,通过 workbook.getWorksheet 方法获取到每一个工作表的数据,将数据处理成一个二维数组的数据

  3. 引入 @handsontable/vue 的组件HotTable

  4. 通过settings属性,将一些配置参数和二维数组数据传入组件,渲染成excel样式,实现预览

<template><input type="file" @hange='handleFile' /><hot-table  :settings="hotSettings"></hot-table>
</template><script setup>import Excel from 'exceljs';import { HotTable } from "@handsontable/vue";import { ref } from 'vue';const data = ref([]);const handleFile = (e) => {const file = e.target.files[0];const workbook = new Excel.Workbook();await workbook.xlsx.load(file)// 第一个工作表const worksheet = workbook.getWorksheet(1);// 遍历工作表中的所有行(包括空行)data.value = worksheet.getRows(1, worksheet.actualRowCount);})const hotSettings = {language: "zh-CN",readOnly: true,data: data.value,mergeCells: this.merge,colHeaders: true,rowHeaders: true,height: "auto",outsideClickDeselects: false,licenseKey: "non-commercial-and-evaluation"}
</script>

PowerPoint 文件实现前端预览

使用 jszip 和 pptxjs 实现 PowerPoint 文件预览

<div id="slide-resolte-contaniner" ></div> <script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="./js/jszip.min.js"></script> <!-- v2.. , NOT v.3.. -->
<script type="text/javascript" src="./js/filereader.js"></script> <!--https://github.com/meshesha/filereader.js -->
<script type="text/javascript" src="./js/d3.min.js"></script> <!-- for charts graphs -->
<script type="text/javascript" src="./js/nv.d3.min.js"></script> <!-- for charts graphs -->
<script type="text/javascript" src="./js/pptxjs.js"></script>
<script type="text/javascript" src="./js/divs2slides.js"></script> <!-- for slide show --><script> $("#slide-resolte-contaniner").pptxToHtml({ pptxFileUrl: "Sample_demo1.pptx", slidesScale: "50%", slideMode: false, keyBoardShortCut: false }); 
</script>

PDF 文件实现前端预览

使用 ComPDFKit PDF SDK 实现 PDF 文件的在线预览

第一步:添加 ComPDFKit PDF SDK 包

  1. @compdfkit 文件夹添加到项目的 目录或 assets 目录下的 lib 目录中。这将作为 ComPDFKit PDF SDK for Web 的入文件,并将它导入到您的项目中。

  2. 将包含运行 ComPDFKit PDF SDK for Web 所需的静态资源文件的 webviewer 文件夹添加到项目的静态资源文件夹中。

第二步:显示PDF文档

  1. @compdfkit 文件夹中的 webviewer.js 文件导入到您的项目中。

  2. 调用 ComPDFKitViewer.init() 在您的项目中初始化 ComPDFKit Web Viewer。

  3. 将要显示的 PDF 地址和许可证密钥传递给 init 函数

// Import the JS file of ComPDFKit Web Viewer
import ComPDFKitViewer from "/@compdfkit/webviewer";
const viewer = document.getElementById('webviewer');
ComPDFKitViewer.init({pdfUrl: 'Your PDF Url',license: 'Input your license here'
}, viewer)
.then((core) => {const docViewer = core.docViewer;docViewer.addEvent('documentloaded', () => {console.log('ComPDFKit Web Viewer loaded');})
})
  1. 项目运行后,您就可以看到要显示的 PDF 文件了。

相关文章:

在线预览Word、Excel、PowerPoint等文件

在我们工作时&#xff0c;经常会有在线查看各种不同类型的文件的需要&#xff0c;如Word文档、Excel表格、PowerPoint幻灯片和PDF等。可以直接在这里预览&#xff1a;https://www.compdf.com/webviewer/demo Word 文件实现前端预览 方案一&#xff1a; 使用 XDOC 可以实现预…...

准确预测极端降水,哥伦比亚大学推出升级版神经网络 Org-NN

内容一览&#xff1a;随着环境变化加剧&#xff0c;近年来全球极端天气现象频频出现&#xff0c;准确预测降水强度对人类以及自然环境都十分重要。传统模型预测降水的方差较小&#xff0c;偏向小雨&#xff0c;对极端降水预测不足。 关键词&#xff1a;极端天气 内隐学习 神经网…...

【数据结构】反转链表、链表的中间节点、链表的回文结构(单链表OJ题)

正如标题所说&#xff0c;本文会图文详细解析三道单链表OJ题&#xff0c;分别为&#xff1a; 反转链表 &#xff08;简单&#xff09; 链表的中间节点 &#xff08;简单&#xff09; 链表的回文结构 &#xff08;较难&#xff09; 把他们放在一起讲的原因是&#xff1a; 反转链…...

Python爬虫-抓取的目标数据为#x开头,怎么解决?

前言 本文是该专栏的第4篇,后面会持续分享python爬虫案例干货,记得关注。 在做爬虫项目的时候,有时候抓取的平台目标数据为&#x开头,如下图所示: 浏览器显示的正常数据,但通过爬虫协议获取到的网页源码数据却是以&#x开头的隐藏数据,遇到这种情况,爬虫需要怎么处…...

短视频账号矩阵系统/技术开发搭建私有部署

本系统是基于短视频领域的新一代系统&#xff0c;旨在提供一个高效、全面的短视频管理与分发平台。系统采用先进的开发算法和技术&#xff0c;实现了智能化视频分类、推荐和用户互动功能。 目录 一、抖音SEO账号矩阵系统的开发和部署遵循以下原则&#xff1a; 二、账号矩阵绑…...

光致发光二极管光源——荧光效率检测系统

发光二极管&#xff08;LED&#xff09;光源已经逐步地取代传统光源&#xff0c;并在生产和生活中得以广泛应用。荧光粉在LED照明设备中起到了至关重要的作用&#xff0c;其功能为将转换芯片所产生的紫外或者蓝光&#xff0c;发射出目标颜色的光。近年来&#xff0c;人们为了提…...

【手撕C语言】多线程

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言,Linux基础,ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的一句鸡汤&#x1f914;&…...

Dubbo2-概述

Dubbo 阿里公司开源的一个高性能&#xff0c;轻量级的javaRPC&#xff08;远程服务调用方案&#xff09;框架&#xff0c;提供高性能远程调用方案以及SOA服务治理方案 Dubbo架构 节点角色说明&#xff1a; Provider:服务提供方 Container:服务运行容器 Consumer:调用远程服务…...

【将回声引入信号中】在语音或音频文件中引入混响或简单回声,以研究回声延迟和回波幅度对生成的回波信号感知的影响(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

pythonocc进阶学习:投影projection

1.点 到 线,&#xff08;直线,曲线&#xff09;等上的投影 staticmethod # 点到Lin的投影 def Project_Pnt_To_Lin(p: gp_Pnt, lin: gp_Lin):Edge BRepBuilderAPI_MakeEdge(lin).Edge()curve BRep_Tool.Curve(Edge)proPnt GeomAPI_ProjectPointOnCurve(p, curve[0])Neares…...

Scractch3.0_Arduino_ESP32_学习随记_显示网络天气(二)

这里写目录标题 目的器材程序联系我们 目的 通过C02获取网络天气。并在屏上显示 器材 硬件: 齐护机器人C02 购买地址 软件: scratch3.0 下载地址:官网下载 程序 使用的是公开免费的API&#xff0c;对请求间隔和次数有限制&#xff0c;如果连续获取可能会被封IP&#xff…...

Mysql压力测试(sysbench)

目录 配置项目环境&#xff1a; 参考&#xff1a;采用sysbench压测mysql详解_dream21st的博客-CSDN博客 实验步骤&#xff1a; 1、安装sysbench工具 2、在master上创建用户和库&#xff0c;配置用户的权限可以使他可以访问库&#xff08;Mysql的主从复制&#xff09; 3、基…...

TBDS MPP参数列表

TBDS MPP参数列表 namesettingdescriptionapplication_namessqlSets the application name to be reported in statistics and logs.archive_cleanup_commandSets the shell command that will be executed at every restart point.archive_command(disabled)Sets the shell co…...

C# OpenCvSharp 读取rtsp流

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using Syste…...

每日后端面试5题 第七天

一、内连接和外连接查询有什么区别&#xff1f; 内连接只查询出两表的交集&#xff1b; 外连接会查询出某表的全部与两表的交集。 二、Nginx的作用 1.反向代理 前端把请求发送给nginx&#xff0c;再由nginx将请求发送给后端服务器。 2.负载均衡 提高访问速度&#xff1b…...

计算机视觉的应用10-图片中的表格结构识别与提取实战

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用10-图片中的表格结构识别与提取实战&#xff0c;表格结构识别在信息处理领域中具有广泛应用&#xff0c;但由于表格的多样性和复杂性&#xff0c;以及难以准确解析的布局和格式&#xff0c;传统的方…...

P4178 Tree (点分治)

题目链接 一&#xff1a;我们考虑树上两点之间的路径有什么情况 1&#xff1a;经过根节点&#xff08;即在根节点的两端&#xff09; 2&#xff1a;不经过根节点&#xff08;完全在一颗子树的一侧&#xff09; 二&#xff1a;我们考虑这两种路径是否可以归为一类 1&#xff1…...

Kubernetes 二进制搭建

Kubernetes 二进制搭建 一、二进制搭建 Kubernetes v1.201.1 部署准备1.2 操作系统初始化配置1.3 部署 etcd 集群1.3.1 etcd 作为服务发现系统&#xff0c;有以下的特点1.3.2 准备签发证书环境1.3.3 在 master01 节点上操作1.3.4 生成证书 1.4 部署 docker引擎1.4.1 部署 Maste…...

QT QtXlsx安装使用

QtXlsx介绍 QtXlsx是一个可以读取和写入Excel文件的库。它不需要Microsoft Excel&#xff0c;可以在Qt5支持的任何平台上使用。 这里一定是需要QT5支持的。 须知安装QtXlsx时&#xff0c;需要下载perl 1.安装perl 这里选择官网下载安装即可。 官网地址&#xff1a;https://p…...

Java医院信息化HIS管理系统源码

HIS模板分为两种&#xff1a;病历模板和报表模板。模板管理是运营管理的核心组成部分&#xff0c;是基层卫生健康云中各医疗机构定制电子病历和报表的地方&#xff0c;各医疗机构可根据自身特点特色定制电子病历和报表&#xff0c;制作的电子病历及报表可直接在业务系统中使用。…...

vue+elementUI+springboot实现文件合并前端展示文件类型

项目场景&#xff1a; element的table上传文件并渲染出文件名称点击所属行可以查看文件,并且可以导出合并文件,此文章是记录合并文档前端展示的帖子 解决方案&#xff1a; 后端定义三个工具类 分别是pdf,doc和word的excle的目前我没整 word的工具类 package com.sc.modules…...

字符串加密(华为OD)

题目描述 给你一串未加密的字符串str,通过对字符串的每一个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量,数组a前三位已经赋值:a[0]=1,a[1]=2,a[2]=4。当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3]。例如:原文 abcde 加密后 bdgkr,…...

robot_lab——rsl_rl的train.py整体逻辑

文章目录 Go2机器人训练流程详细分析概述1. 训练启动流程1.1 命令行参数解析RSL-RL相关参数组Isaac Sim应用启动参数组 1.2 RL配置1.3 Isaac Sim启动 2. 环境配置加载2.1 Hydra配置系统 3. 环境创建与初始化3.1 Gym环境创建3.2 Manager系统初始化3.2.1 ObservationManager3.2.2…...

相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、背景 二、:Camera硬件配置差异 2.1:硬件配置差异核查项 2.2 :核查方式 2.3 :高通camx平台核查 2.4 :MTK平台核查...

【JVM】Java虚拟机(一)——内存结构

目录 一、简介 二、程序计数器 三、虚拟机栈 栈帧结构&#xff1a; 特点&#xff1a; 四、本地方法栈 特点&#xff1a; 五、堆 堆结构&#xff1a; 特点&#xff1a; 对象分配过程&#xff1a; 六、方法区 方法区结构&#xff1a; 特点&#xff1a; 运行时常量池…...

车牌识别技术解决方案

在城市化进程不断加速的背景下&#xff0c;小区及商业区域的车辆管理问题日益凸显。为解决这一问题&#xff0c;车牌识别技术应运而生&#xff0c;成为提升车辆管理效率与安全性的关键手段。本方案旨在详细介绍车牌识别系统的基本原理、功能设计、实施流程以及预期效益&#xf…...

Claude vs ChatGPT vs Gemini:功能对比、使用体验、适合人群

随着AI应用全面进入生产力场景&#xff0c;市面上的主流AI对话工具也进入“三国杀”时代&#xff1a; Claude&#xff08;Anthropic&#xff09;&#xff1a;新锐崛起&#xff0c;语言逻辑惊艳&#xff0c;Opus 模型被称为 GPT-4 杀手ChatGPT&#xff08;OpenAI&#xff09;&a…...

Kafka存储机制核心优势剖析

文章目录 Kafka存储机制核心优势剖析1. **写入路径:Page Cache vs. 应用层缓存**2. **Page Cache工作原理解析**3. **顺序写盘 vs. 随机写盘**4. **资源利用最优化****为什么Page Cache方案更优?**1. **双缓存问题彻底解决**2. **读写路径统一优化**3. **故障恢复优势****生产…...

【Java EE初阶 --- 多线程(初阶)】多线程的实现案例

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 &#xff0c;Java 欢迎大家访问~ 创作不易&#xff0c;大佬们点赞鼓励下吧~ 文章目录 前言单例模式实现单例模式…...

Python批量转换Word、Excel、PPT、TXT、HTML及图片格式到PDF,包含错误处理和日志记录功能

完整的Python脚本,支持批量转换Word、Excel、PPT、TXT、HTML及图片格式到PDF,并包含错误处理和日志记录功能: import os import sys import logging from win32com import client from PIL import Image from fpdf import FPDF import pdfkit import traceback# 配置日志 l…...