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

太原做网站个人兰州建设局网站公告

太原做网站个人,兰州建设局网站公告,织梦添加网站音乐,做内容网站在前端开发中,经常会遇到需要在线预览各种文件的需求。本文将介绍如何使用前端技术实现在线预览 Excel 文件的功能。 一、基于微软office服务的excel预览 获取要预览的 Excel 文件的 URL(例如存储在 OneDrive 或 SharePoint 上的文件)。 使…

在前端开发中,经常会遇到需要在线预览各种文件的需求。本文将介绍如何使用前端技术实现在线预览 Excel 文件的功能。

一、基于微软office服务的excel预览

  1. 获取要预览的 Excel 文件的 URL(例如存储在 OneDrive 或 SharePoint 上的文件)。

  2. 使用 Office Online 的嵌入代码。可以在网页中使用以下类似的 HTML 结构:

    <iframe src="https://view.officeapps.live.com/op/embed.aspx?src=<Excel 文件 URL>" frameBorder={0}
    />
    

另外需要支持下载的话,还可以在src链接后加上wdDownloadButton属性:

    <iframe src="https://view.officeapps.live.com/op/embed.aspx?src=<Excel 文件 URL>&wdDownloadButton=True" frameBorder={0}/>

预览效果如下:

在这里插入图片描述

微软office的在线预览服务,不仅可以预览excel,还支持word、ppt等Office文件等在线预览,如果对预览要求不是很高的话,这是一个比较低成本低实现方式。

二、使用 LuckyExcel、Luckysheet 的 Excel 预览

Luckysheet库的在线预览excel,我觉得是相对还原度比较高的,在试用其他几个常见的开源库后,发现他们对excel文件中存在图表形式内容的还原存在问题,而Luckysheet库还原是比较好的。

1. 安装LuckyExcel、Luckysheet
  • 安装LuckyExcel:

    npm i LuckyExcel

  • Luckysheet不存在npm包,需要通过script标签去通过远程url引入:

在html文件中引入:

  <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/css/pluginsCss.css' /><link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/plugins.css' /><link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/css/luckysheet.css' /><link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/assets/iconfont/iconfont.css' /><script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/js/plugin.js"></script><script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/luckysheet.umd.js"></script>
2. 在文件中引入
import LuckyExcel from 'luckyexcel';

Luckysheet库因为是script引入的,可以通过window.Luckysheet来使用,为避免ts报错,需要定义全局变量

declare global {interface Window {luckysheet: any;};
};
3. 在线预览excel文件

在日常的业务中,预览的excel有2种场景:

  • 在线的excel url链接
  • 通过后端流式接口请求的excel数据

所以我们通过接口将response转为buffer格式,来兼容2种形式场景:

fetch("example.xlsx").then(res => {return res.arrayBuffer();}).then(buffer => {// 转为blob格式,以备后面下载使用const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });//可以将blob对象保存起来 需要在外层定义好`downloadFile`变量downloadFile = blob;LuckyExcel.transformExcelToLucky(buffer, function (exportJson, luckysheetfile) {exportJson.sheets[0].zoomRatio = 1;console.log("exportJson", exportJson);console.log("window.luckysheet", window.luckysheet);if (window.luckysheet && window.luckysheet.create) {window.luckysheet?.create({container: "excel", //luckysheet is the container idlang: 'zh',showtoolbar: false,//是否显示工具栏showinfobar: false,//是否显示顶部信息栏showsheetbar: false,//是否显示底部sheet页按钮allowCopy: false,//是否允许拷贝allowEdit: false,//是否允许编辑// showstatisticBar: false,//是否显示底部计数栏sheetFormulaBar: false,//是否显示公示栏enableAddRow: false,//是否允许添加行enableAddBackTop: false,//是否允需回到顶部// devicePixelRatio: 10, //设置比例data: exportJson.sheets,// title: exportJson.info.name,// userInfo: exportJson.info.name.creator,hook: {workbookCreateAfter: () => {console.log("workbookCreateAfter------------");}}});}})})

luckysheet中并没有excel文件加载完毕的回调,但是可以通过hook中的workbookCreateAfter来监听文件加载完成。

luckysheet的页面配置项,可以通过官网文档来进行自由配置

luckysheet配置项

预览效果如下图所示:

在这里插入图片描述

下载excel文件 函数如下:

// 下载文件const handleDownloadFile = () => {if (downloadFile) {const url = window.URL.createObjectURL(downloadFile);const a = document.createElement('a');a.style.display = 'none';a.href = url;a.download = '高效机房设计计算报告.xlsx';document.body.appendChild(a);a.click();window.URL.revokeObjectURL(url);document.body.removeChild(a);}};

三、总结优缺点

微软Office服务的优缺点

优点:

  • 利用微软的强大服务,稳定性和兼容性较高。
  • 提供丰富的功能,如编辑、批注等。

缺点:

  • 需要用户具有微软 Office 订阅或者在特定环境下使用,限制了其适用性。
  • 可能存在性能问题,特别是对于大型文件。

LuckyExcel、Luckysheet的优缺点、

优点:

  • 开源免费,无需用户具有特定的订阅。
  • 可以自定义显示和功能,灵活性较高。

缺点

  • 可能需要一些额外的配置和调试。
  • 功能可能不如微软 Office 服务丰富。

四、LuckyExcel、Luckysheet的延伸

LuckyExcel、Luckysheet纯前端类似excel的在线表格,功能强大、配置简单、完全开源。它的使用场景不仅仅局限于excel文件的在线预览,同时也支持在线编辑等,可以访问官网获取更多的应用场景。

Luckysheet官网

在线demo

在这里插入图片描述

在Luckysheet的基础上,Luckysheet团队还推出了Luckysheet升级版Univer,有兴趣的可以玩一玩,不过它的在线预览需要配合服务端使用

Univer官网

五、OnlyOffice:免费的在线 Office 解决方案

经小伙伴提醒,去研究了OnlyOffice,确实很好用,文件预览还原性很高,样式好看,性能也比较强大,几千行的表格预览也不卡,感兴趣的小伙伴可以参考我的文章《OnlyOffice:前端高性能Word、Excel、PPT、Pdf预览服务》

OnlyOffice需要服务端支持,仅前端预览的话,请忽略

http://www.yayakq.cn/news/996750/

相关文章:

  • 怎么个人做网站开发一个app最少需要多少钱
  • 务川自治县建设局网站响应式网站开发视频
  • 哪里有免费的网站推广太原论坛2021
  • 网站繁体和中文这么做十大不收费的软件2023年
  • 青岛中小企业网站制作渠道招商
  • 校内 实训网站 建设方案wordpress 标签中文乱码
  • 免费网站制作下载wordpress是开源
  • 怎么用腾讯云主机建设网站域名注册了怎么才能用
  • 做的网站每年需要续费别人做的网站怎么打开
  • 网站空间容量怎么自建导购网站做淘客
  • 站酷海洛设计网站官网wordpress搬家至本地及域名替换
  • 哪里有网站开发服务器只会网站开发能创业吗
  • 制作可以赚钱的网站网站页面设计如何收费
  • 苏州h5建站桂林网络推广外包
  • 杭州专门做网站微信网站合同
  • iis网站连接数网站文章更新注意什么
  • 婚纱照网站制作最近中国新闻热点大事件
  • 网站域名证书怎么获取专业网络推广平台
  • 网站建设杭州最便宜有专门教做儿童美食的网站吗
  • 自己学建网站手机上使用wordpress
  • 网站开发程序设计中国最大型网站
  • 旅游网站制作内容县城做网站的多么
  • 江苏seo推广网站建设广州seo优化外包服务
  • 网站开发的基本流程二级域名怎么解析
  • 北京新增死亡病例详情网站seo优化建议
  • 二级网站建设 管理思路试玩平台网站怎么做
  • 中天建设招标网站html 类似淘宝购物网站上加载时获取属性并可多选过滤 代码
  • 案例模板我的网站百度指数官网数据
  • 太原房产网站建设天猫与京东的网站建设管理
  • 8090在线观看免费观看优化百度百科