首页 > 其他分享 >vue导出带样式的excel

vue导出带样式的excel

时间:2023-09-13 11:55:05浏览次数:42  
标签:vue 20 name excel age 导出 sex amount table

示例说明
实现导出excel不同块的颜色

template
a标签仅做文件名称调整,默认为隐藏状态;

<template>
  <div>
    <button @click="exportExcel">导出</button>
    <a ref="export_a" />
  </div>
</template>

script

export default {
  name: 'Excel',
  data() {
    return {
      table: [
        { name: '张三', age: 20, sex: '男', amount: 100 },
        { name: '李四', age: 20, sex: '女', amount: -50 },
        { name: '王五', age: 20, sex: '男', amount: 20 },
        { name: '赵六', age: 20, sex: '女', amount: -30 },
        { name: '田七', age: 20, sex: '女', amount: -30 },
        { name: '曹八', age: 20, sex: '女', amount: 60 },
        { name: '刘九', age: 20, sex: '男', amount: -20 },
        { name: '孙十', age: 20, sex: '男', amount: 50 },
        { name: '魏十一', age: 20, sex: '女', amount: 25 }
      ]
    }
  },
  methods: {
    exportExcel() {
      // 列标题
      let table = '<table border="1" style="font-family: SimSun;font-size:16px"><tr><td>姓名</td><td>年龄</td><td>性别</td><td>净资产</td></tr>'
      this.table.forEach(row => {
        var color = ''
        if (row.amount > 0) {
          color = 'green '
        } else {
          color = 'red '
        }
        table += `<tr><td>${row.name}</td><td>${row.age}</td><td>${row.sex}</td><td style="background-color:${color}">${row.amount}</td></tr>`
      })
      table += '</table>'
      // 下载的表格模板数据
      const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" 
        xmlns:x="urn:schemas-microsoft-com:office:excel" 
        xmlns="http://www.w3.org/TR/REC-html40">
        <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
        <x:Name>sheet名称</x:Name>
        <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
        </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
        </head><body>${table}</body></html>`
      // 下载模板
      this.$refs.export_a.href = `data:application/vnd.ms-excel;base64,${window.btoa(unescape(encodeURIComponent(template)))}`
      this.$refs.export_a.download = `excel名称`
      this.$refs.export_a.click()
    }
  }
}

 

标签:vue,20,name,excel,age,导出,sex,amount,table
From: https://www.cnblogs.com/liuguoW/p/17699218.html

相关文章

  • Vue3语法基本使用
    1、watch使用watch(监听数据源,执行函数,[配置参数])//配置参数:立即执行深度监听{immediate:true,deep:true}1.1监听基本数据类型单一数据源<scriptsetup>import{ref,watch}from'vue'letname=ref('张麻子')//监听器watch(name,(new......
  • 解决vue中watch监听对象变化获取不到旧数据的问题
    解决vue中watch监听对象变化获取不到旧数据的问题1.问题代码watch:{pageInfo:{handler(newVal,oldVal){console.log(newVal,oldVal);},}}结果:打印出来newVal和oldVal输出内容一样console.log(newVal===oldVal)//true发现这......
  • Vue.set和splice方法有什么区别?
    Vue.set方法和splice方法在Vue中用于修改数组的行为有一些区别。一:Vue.set(obj,key,value):用途:Vue.set是Vue提供的全局方法,用于向响应式对象中添加新的响应式属性,并确保这个新属性是响应式的。参数:obj:要修改的目标对象。key:要添加的属性键名。value:要添加的属性值。示......
  • 从零开始使用vue2+element搭建后台管理系统(实现导出excel表格的功能)
    首先参阅了以下文档:https://panjiachen.gitee.io/vue-element-admin-site/zh/feature/component/excel.html#excel-%E5%AF%BC%E5%87%BAhttps://blog.csdn.net/weixin_42028153/article/details/124804841核心思想:抄一下vue-element-admin这个很棒的开源集成后台管理系统中所提......
  • VUE2教程-基础-Class 与 Style 绑定
    Class与Style绑定操作元素的class列表和内联样式是数据绑定的一个常见需求。因为它们都是attribute,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js做了专门的增强......
  • VUE2基础-Vue实例
    Vue实例创建一个Vue实例 每个Vue应用都是通过用 Vue 函数创建一个新的 Vue实例开始的:varvm=newVue({//选项})虽然没有完全遵循 MVVM模型,但是Vue的设计也受到了它的启发。因此在文档中经常会使用 vm (ViewModel的缩写)这个变量名表示Vue实例。当创建......
  • VUE2教程-基础-简介
    Vue.js是什么Vue(读音/vjuː/,类似于 view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue......
  • Vue~vue3-sfc-loader用法
    1.vue2-sfc-loader版本参考这个:(vue2&vue2-sfc-loader)https://article.juejin.cn/post/72369546129882972742.vue3-sfc-loader版本的基础写法:(vue3&vue3-sfc-loader)<template><div><component:is="data.remote"v-if="data.remote&q......
  • vue router页面跳转及传参、Vue获取用户输入到页面的数据在另一个页面使用
     vuerouter页面跳转及传参?一、router-link跳转###1.不带参数,name,path都行,建议用name<router-link:to="{name:'home'}"><router-link:to="{path:'/home'}">###2.带params参数<router-link:to="{name:'home'......
  • Word-批量导出Word中的图片
    当我们需要把Word文件中的图片保存起来,你是如何导出Word图片呢?右键一张张保存图片吗?这效率太低了。如果文档中有大量的图片,这个方法会浪费很多时间。下面给大家分享word如何批量导出图片的技巧。1、Word文件转网页格式导出图片这个方法是将Word图片保存为网页的格式,操作方法:选择......