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

vue2项目中在线预览csv文件

简介

希望在项目中,在线预览.csv文件,本以为插件很多,结果都只是支持excel(.xls、.xlsx)一到.csv就歇菜。。。

关于文件预览

vue-office:文档、 查看在线演示demo,支持docx、.xlsx、pdf、pptx格式,优势可以vue组件形式嵌入系统,只需要普通文档预览使用这个足矣。

univer:文档、查看在线演示demo、支持docx、.xlsx、pdf、pptx格式,以.xlsx为主,不如vue-office接入简单,也不如kkFileView、OnlyOffice支持的格式丰富。

kkFileView:文档、查看在线演示demo、大部分格式都支持,但需要后端部署,优势比OnlyOffice支持格式更多。

OnlyOffice:文档、vue3组件、大部分格式都支持,但需要后端部署,优势有vue3组件。

效果

简单粗暴无需手动添加样式,引入调用即可 。
heiho.js github :用于渲染弹窗
PapaParse github:用于解析csv文件
在这里插入图片描述

源码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="referrer" content="no-referrer" /><meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no, viewport-fit=cover" /><title>vue2项目中在线预览csv文件</title><!-- 引入样式 --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@kktsvetkov/heiho@0.3.3/heiho.css" /><style>/* 页面所需样式 */html,body,#app {width: 100%;margin: 0;padding: 0;}.cardBox {width: 50%;border-radius: 8px;display: flex;flex-direction: column;align-items: center;padding-top: 20px;margin: 0 auto;}</style>
</head><body style="background: #eee;"><div id="app" class="pt10"><div class="cardBox pl10 pr10 pt15 pb15 borBox bgf ml12 mr12 mb12 fz16"><p>在线预览csv文件</p><button @click="viewForUrl">通过在线可访问的csv地址的方式</button><br /><button @click="viewForFlie">通过接口返回csv文件流的方式</button></div></div>
</body><script src="https://lib.baomitu.com/vue/2.6.14/vue.js"></script>
<!-- 引入heiho -->
<script src="https://cdn.jsdelivr.net/npm/@kktsvetkov/heiho@0.3.3/heiho.min.js"></script>
<!-- 引入papaparse -->
<script src="https://cdn.jsdelivr.net/npm/papaparse@5.4.1/papaparse.min.js"></script>
<script>new Vue({el: '#app',data() {return {}},created() {},mounted() {},methods: {// 在线可访问的csv文件,可通过路径方式预览viewForUrl(){Papa.parse('https://support.staffbase.com/hc/en-us/article_attachments/360009197071/email.csv', {download: true,complete: function(results) {const data = results.data;// 渲染组件Heiho(data, { max: data.length });}});},// 无法访问的文件,通过接口拿到文件流的方式预览viewForFlie(){fetch('https://support.staffbase.com/hc/en-us/article_attachments/360009197071/email.csv').then(response => {if (response.ok) {return response.blob();}throw new Error('Network response was not ok.');}).then(blob => {Papa.parse(blob, {complete: function(results) {const data = results.data;// 渲染组件Heiho(data, { max: data.length, title: 'email.csv' });}});})}}})
</script></html>
外传

期待2025、这几年互联网似乎进入了末期,好像经济危机在身边,可能十年后,人们会谈论着202x年就是低谷期。
我也是时常跟媳妇说,再失业了,如果找不到合适的码农岗位,我就要转行了。自古逢秋悲寂寥,我言秋日胜春朝。

http://www.lryc.cn/news/485956.html

相关文章:

  • 基于VUE实现语音通话:边录边转发送语言消息、 播放pcm 音频
  • PMP--一、二、三模、冲刺--分类--变更--技巧--特点
  • CSS Grid 布局实战:从入门到精通
  • git创建远程仓库,以gitee码云为例GitHub同理
  • Java爬虫(HttpURLConnection)详解
  • 基于STM32的智能停车管理系统设计
  • 【循环神经网络】
  • 优选算法 - 4 ( 链表 哈希表 字符串 9000 字详解 )
  • CTF-RE 从0到N: windows反调试-获取Process Environment Block(PEB)信息来检测调试
  • STM32开发基础阶段复习
  • 搜维尔科技:SenseGlove触觉反馈手套开箱+场景测试
  • 在k8s上部署Crunchy Postgres for Kubernetes
  • 大模型(LLMs)进阶篇
  • 近几年新笔记本重装系统方法及一些注意事项
  • 小程序19-微信小程序的样式和组件介绍
  • Chrome 浏览器开启打印模式
  • Git回到某个分支的某次提交
  • [前端面试]javascript
  • 对象的初步认识
  • layui 输入框带清空图标、分词搜索、关键词高亮
  • Vue 3 + TypeScript: 类型安全的前端开发实践
  • Python爬虫知识体系-----requests-----持续更新
  • Swift的可选绑定(Optional binding)
  • 硬石电机学习2024116
  • 行业类别-金融科技-子类别区块链技术-细分类别智能合约-应用场景供应链金融课题
  • ElementPlus el-upload上传组件on-change只触发一次
  • 论文阅读:Uni-ISP Unifying the Learning of ISPs from Multiple Cameras
  • AntD表单自定义组件
  • 19-简单理解JavaScript中的Promise:手写Promise实现
  • elementUI input 禁止内容两端存在空格,或者是自动去除两端空格