导出Excel组件

任务场景:上传图片生成表格(百度api)展示表格内容并可以导出成Excel(前端实现)

  1. 前端导出表格为Excel文件,就封装了一个按钮可以直接点击然后导出表格(记录一下)

    效果展示

    具体实现 (组件篇)

// 首先要引入两个js文件 别人封好的 Blob.js和Export2Excel.js这两个网上很多可以直接去下载
// 或者npm下载也可以
<template>
<div v-if="flag"><slot></slot>
</div>
</template><script>
export default {/*columns: [{title: '', key: 'date'},{title: '', key: 'name'},{title: '', key: 'address'}],tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'}, {date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄'}, {date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'}, {date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄'}]父组件点击事件click () {this.exportTableFlag = false// 这里面写数据的处理this.$nextTick(() => {this.exportTableFlag = truethis.$refs.exportTableRef.exportData()})}*/props: {columns: {require: true,Object: Array},tableData: {require: true,Object: Array},tableName: {require: false,default: '数据列表',Object: String},btnName: {require: false,default: '导出表格',Object: String},flag: {require: true,default: false,Object: Boolean}},data() {return {e_columns: [],e_tableData: []}},watch: {columns: {handler (newV) {this.e_columns = newV},deep: true,immediate: true},tableData: {handler (newV) {this.e_tableData = newV},deep: true,immediate: true}},mounted () {// this.$nextTick(() => {//   this.$on('exportData', function () {//   console.log(this.e_tableData)//   })// })},methods: {// 由父组件通过ref直接调用exportData () {this.$emit('exportData')console.log(this.e_tableData)console.log(this.e_columns)this.export2Excel(this.e_columns, this.e_tableData)},export2Excel(columns,list){require.ensure([], () => {const { export_json_to_excel } = require('./excel/Export2Excel');let tHeader = []let filterVal = []console.log(columns)if(!columns){return;}columns.forEach(item =>{tHeader.push(item.title)filterVal.push(item.key)})const data = list.map(v => filterVal.map(j => v[j]))export_json_to_excel(tHeader, data, this.tableName);})}}
}
</script><style></style>

具体地方使用

<export-table ref="exportTableRef" :columns="columns" :tableData="tableData" :flag="exportTableFlag"><el-button type="primary" @click="createdExcel" style="margin-top: 20px" size="small">生成Excel表格</el-button>
</export-table>
// 不知道为啥直接父组件直接调用时,子组件的watch监听不到,所以使用了v-if来让子组件能够监听到数据变化
import exportTable from '@/components/Common/exportTable/exportTable'
components: {exportTable
},
data () {return {exportTableFlag: false}
},
methods: {// 把数据处理成子组件需要的数据 我这儿由于下方加了一个操作按钮,所以需要把操作按钮干掉,所以写了这些逻辑// 点击之前先隐藏按钮 然后调用方法前再显示 页面上没有任何消失显示的效果 createdExcel () {console.log(this.imgTableList)this.exportTableFlag = falsethis.columns = []this.tableData = []let tableObj = {}this.imgTableList.map((item, index) => {if (index === 0) {item.map((item1, index1) => {this.columns.push({title: item1.word,key: item1.column})})} else if (index !== this.imgTableList.length - 1) {item.map((item2, index2) => {tableObj[item2.column] = item2.word})this.tableData.push(tableObj)tableObj = {}}})console.log(this.columns)console.log(this.tableData)this.$nextTick(() => {this.exportTableFlag = true// 调用子组件导出表格方法this.$refs.exportTableRef.exportData()})},
}

vue导出Excel组件相关推荐

  1. 封装vue导出excel组件(扩展嵌入图片、操作工作表、表格样式等功能)

    导出的excel中嵌入图片,同时还需要操作多个工作表与表格样式, 看了一些java的插件不太适合,因为我这边的需求是动态表单,字段不固定.后端的插件大部分依赖实体类注解,要不就是操作比较繁琐.又看了一 ...

  2. vue导入导出excel组件封装

    vue导入导出excel组件 可直接使用 参考以下博客,侵删 参考的博客 ##一: 项目安装依赖 npm install --save xlsx 在项目中创建文件夹及文件如下图: excel-impo ...

  3. vue导出excel加一个进度条_vue导出excel遇到的问题解决方法

    本篇文章给大家带来的内容是关于vue导出excel遇到的问题解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 需求: Vue+element UI el-table下的导出当前 ...

  4. vue导出excel功能实现

    vue导出excel功能实现 第一步安装依赖包 第二步在项目中assets创建一个新的文件夹js用于存放Blob和Export2Excel两个js文件 第三步在你那个组件中使用 写事件方法 Expor ...

  5. vue导出excel表的时候有多张图片

    vue导出excel的时候多张图片 遇到数据结构是[ { id:id, image:['图片','图片','图片'] } ] 这样的数据导出,使用插件 js-table2excel 导出的时候发现它只 ...

  6. (vue)vue导出excel文件打不开,或者文件内容为object object

    (vue)vue导出excel文件打不开,或者文件内容为object object[已解决] bug: 主要原因:没有注意到后端返回的数据格式,需要的是res而不是res.data 正确写法: < ...

  7. vue导出Excel表格全局函数(简洁明了)

    vue导出excel全局函数(简洁明了) 将导出到Excel功能封装成一个公用js函数,供其他vue页面复用. 1.安装Excel插件 npm install --save xlsx file-sav ...

  8. Magicodes.IE.Excel 用法注意 导出Excel 组件,非常好用的.

    Magicodes.IE.Excel 导出Excel 组件,非常好用的. 本人在使用过程中遇到的一些小小问题分享给大家注意的: 第一:注意字段不能有空格 第二:注意属性类型最好都是string类型 [ ...

  9. java导出excel组件alibaba easyexcel和apache poi性能对比

    java导出excel组件alibaba easyexcel和apache poi性能对比 背景: 开发中出现web页面导出记录到excel导致服务oom奔溃,代码中使用apache poi组件导出, ...

  10. 【vue开发】vue导出Excel表格教程demo

    前端工作量最多的就是需求,需求就是一直在变,比如当前端数据写完之后,需要用Excel把数据下载出来:再比如前端在没有数据库想写些demo玩时,也是很好的选择. 第一步安装依赖包,修改配置 1.装依赖: ...

最新文章

  1. 传潘石屹投资爱蜂潮 天猫不予评论
  2. Android 三种方式实现自定义圆形页面加载中效果的进度条
  3. oracle 删除补全日志组_浅谈Oracle 20c ASM文件组模板技术
  4. 造轮子是什么意思_程序员为什么热衷于造轮子,升职加薪吗?
  5. linux端口扫描脚本ip段,shell脚本结合iptables防端口扫描的实现
  6. HTML1个像素宽的代码,HTML5 Canvas中绘制一个像素宽的细线实现代码详情
  7. 【Paper】DeepConvLSTM:Deep Convolutional and LSTM RNN for Multimodal Wearable Activity Recognition
  8. Spring MVC整合FreeMarker
  9. 欧拉回路专题 POJ - 1637网络流+混合图的欧拉回路
  10. drwxr-xr-x是啥意思
  11. android通知栏设置,android系统通知栏提示消息
  12. 那些年用过的时间衰减函数
  13. 拯救流浪猫 | 「喵先锋」系列数字版权盲盒明日开抢
  14. iview 组件 设置头像更换
  15. Mysql与Postgresql常用命令比较
  16. 2021年化工自动化控制仪表考试报名及化工自动化控制仪表新版试题
  17. 计算机本地连接没有有效ip配置,本地连接没有有效的ip配置?教您怎么解决
  18. ArcGIS二次开发基础教程(10):三维分析
  19. 大汇总 | 一文学会八篇经典CNN论文
  20. D3D渲染技术之纹理

热门文章

  1. 【原创】2021-2001广东统计年鉴面板数据、珠三角数据、广东年鉴(可直接使用)
  2. Permute 3 for mac(全能媒体格式转换器)
  3. Web服务压力测试工具BullBench
  4. 禅道类似软件_推荐几款不错的项目管理软件
  5. CE教程:植物大战僵尸(单卡片无CD)
  6. 数据库面试题(答案)
  7. 普通IC、M1、UID、CUID、FUID、UFUID卡的区别
  8. 如何将视频转换成文字
  9. Adblock Plus官网最新下载 中文,绿色版Adblock Plus下载谷歌插件,edge,电脑版exe,火狐版,搜狗浏览器,ie浏览器
  10. ubuntu安装文泉驿字体