Vue+iview实现自定义格式导出Excel文件

简介: Vue+iview实现自定义格式导出Excel文件

背景:项目中要实现一个导出Excel文件模板的功能,原来实现是通过后台生成然后前端请求下载,这样要消耗IO资源,然后看了一下之前项目的导出功能,发现原来Vue+iview可以实现本地数据导出,不过iview自带的方法只能导入CSV格式的文件,然后我是需要导出xlsx格式的文件,研究了一下,通过简单修改iview源码,可以实现自定义格式的文件,比如Excel,txt等,下面走起

1.先添加导出按钮

<Button
    type="primary"
    @click="exportData" 
>导出模板</Button>

2.绑定表格模板

<Table
    :columns="modelColumns"        
    :data="modelData"
    ref="modelTable" 
    v-show="false"
></Table>
// v-show隐藏表格,这个表格只是用来作为一个导出的模板而存在
// 不能用v-if,会把表格代码去除

3.绑定数据和方法

<script>
    export default{
        data(){
            return{
                modelData:[],
                modelColumns:[
                    {title:'手机号'}// 列名根据需要添加
                ]
            }
        },
        methods:{
            exportData(){
                this.$refs.modelTable.exportCsv({
                    filename:'模板名字',
                    columns:this.modelColumns,
                    data:this.modelData
                })
            }
        }
    }
</script>

如果只要导出CSV格式的文件,到这里就已经ok了,下面我们通过改源码实现自定义格式
写出上面代码后,按住Ctrl点exportCsv方法,先择iview.js文件进去,然后exportCsv的方法,复制在后面,自定义一个名字,修改下面的关键代码,然后和调用exportCsv一样,调用加一个type属性就ok了

if(params.filename){
    if(params.filename.indexOf('.'+params.type)===-1{
        params.filename+='.'+params.type;
    }
}else{
    params.filename='table.'+params.type;    
}

修改完之后保存,其它不变,调用方法时增加type属性

methods:{
    exportData(){
        this.$refs.modelTable.exportCsv({
            filename:'模板名字',
            type:'xlsx' // 也可以填写txt,xls
            columns:this.modelColumns,
            data:this.modelData
        })
    }
}

相关文章
|
6天前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
55 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
缓存 JavaScript UED
Vue3中v-model在处理自定义组件双向数据绑定时有哪些注意事项?
在使用`v-model`处理自定义组件双向数据绑定时,要仔细考虑各种因素,确保数据的准确传递和更新,同时提供良好的用户体验和代码可维护性。通过合理的设计和注意事项的遵循,能够更好地发挥`v-model`的优势,实现高效的双向数据绑定效果。
148 64
|
1月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
32 6
按条件将Excel文件拆分到不同的工作表
|
1月前
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
40 6
|
1月前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
41 6
|
2月前
|
前端开发 JavaScript 测试技术
Vue3中v-model在处理自定义组件双向数据绑定时,如何避免循环引用?
Web 组件化是一种有效的开发方法,可以提高项目的质量、效率和可维护性。在实际项目中,要结合项目的具体情况,合理应用 Web 组件化的理念和技术,实现项目的成功实施和交付。通过不断地探索和实践,将 Web 组件化的优势充分发挥出来,为前端开发领域的发展做出贡献。
41 8
|
2月前
|
JavaScript
在 Vue 3 中,如何使用 v-model 来处理自定义组件的双向数据绑定?
需要注意的是,在实际开发中,根据具体的业务需求和组件设计,可能需要对上述步骤进行适当的调整和优化,以确保双向数据绑定的正确性和稳定性。同时,深入理解 Vue 3 的响应式机制和组件通信原理,将有助于更好地运用 `v-model` 实现自定义组件的双向数据绑定。
|
2月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
37 1
|
2月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
90 4
|
3月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
134 6