根据条件查询下载Excel表单(Java+Vue 及 Vue 两种方式)
温馨提示:这篇文章已超过383天没有更新,请注意相关的内容是否还可用!
目录
- 前言
- 1. 基本知识
- 2. 纯前端导入导出(Vue)
- 3. 前后端(Vue + Java)
前言
如果想要下载好看的Excel推荐阅读:
(图片来源网络,侵删)- 详细讲解Java使用EasyExcel函数来操作Excel表(附实战)
- 详细讲解Java使用HSSFWorkbook函数导出Excel表(附实战)
- Python读取Excel的几种工具包(附Demo)
详细的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
此文通过后端你的查询前端,使用前端的下载参数下载!
1. 基本知识
this.$export.excel 是在 Vue.js 组件中使用的一个方法,通过 Vue.js 插件或 mixin 扩展到组件中的一个方法
主要功能是将给定的数据导出为 Excel 文件
参数包括:
- 标题:Excel 文件的标题或名称
- 列信息:导出的数据应该如何在 Excel 表格中排列,包括列名、宽度等
- 数据:要导出的实际数据,可能是一个数组,每个元素代表一行数据,每行的元素按照列信息进行排列
具体作用如下:
- 灵活性:支持不同的选项,比如自定义标题、指定列的顺序和格式、处理数据以适应 Excel 的需求等
- 用户友好:提供一种用户友好的方式来导出数据,使用户能够以熟悉的 Excel 格式保存和处理数据,而无需手动将数据从应用程序复制粘贴到 Excel 中
2. 纯前端导入导出(Vue)
导入:
-
自定义样式以增强界面外观。
-
添加了 .xlsx 文件的限制,只允许选择该类型的文件进行上传。
-
添加了一些虚拟数据,以便在没有上传文件时也可以查看表格的展示效果。
-
在 部分使用了 scoped,以确保样式仅在当前组件中生效,避免全局污染。
选择要导入的 .xlsx 表格import Vue from "vue"; import pluginImport from "@d2-projects/vue-table-import"; Vue.use(pluginImport); export default { data() { return { table: { columns: [], data: [], }, }; }, methods: { handleUpload(file) { this.$import.xlsx(file).then(({ header, results }) => { // 将表头作为列的标签和属性 this.table.columns = header.map((e) => { return { label: e, prop: e, }; }); // 演示用的虚拟数据 this.table.data = [ { id: 1, name: "John", age: 30, email: "john@example.com" }, { id: 2, name: "Jane", age: 28, email: "jane@example.com" }, { id: 3, name: "Doe", age: 35, email: "doe@example.com" }, ]; }); return false; }, }, }; .excel-import-demo { max-width: 600px; margin: 0 auto; } .upload-excel { margin-bottom: 20px; } .table-container { margin-top: 20px; }导入的数据
导出:
import Vue from 'vue' import pluginExport from '@d2-projects/vue-table-export' Vue.use(pluginExport) export default { data() { return { table: { columns: [], data: [] } } }, methods: { exportExcel() { this.$export.excel({ columns: this.table.columns, data: this.table.data }).then(() => { this.$message('导出表格成功') }) } } } .excel-export-demo { max-width: 400px; margin: 0 auto; text-align: center; padding: 20px; } .header h2 { margin-bottom: 20px; } .footer { margin-top: 20px; font-size: 12px; }数据导出为 Excel
导出为 Excel3. 前后端(Vue + Java)
根据前面的一个框架,大致设计一个导出Excel
通过点击按钮:
handleExcel() { this.loading = true; queryAllForExcel( Object.assign(this.getQuery()) ).then(res=>{ console.log(); const column = this.option.column; const data = res.data.data; let opt = { title: 'EXCEL 下载', column: column, data: data }; console.log(opt); this.$export.excel({ title: opt.title || new Date().getTime(), columns: opt.column, data: opt.data }); }).finally(()=>{ this.loading = false; }); },传输的条件如下:(以下为Demo)
getQuery(){ var mTime = this.formInline.maintenanceTimePicker; var aTime = this.formInline.acceptTimePicker; var js; // 多机种的多个搜索 var newmodel = ''; console.log(this.formInline.model); if(this.formInline.model){//添加检查 for(var i=0;i if(i==0){ newmodel=this.formInline.model[i] }else{ newmodel=newmodel+'-'+this.formInline.model[i] } } } // 设备编号的多个搜索 var nos = ''; if(this.formInline.equipmentNo){ // 不为空的判断 for(var i=0;i if(i==0){ nos=this.formInline.equipmentNo[i] }else{ nos=nos+'-'+this.formInline.equipmentNo[i] } } } if((mTime!=null&&(mTime.length!=1))&&(aTime!=null&&(aTime.length!=1))){ js = { "equipmentNos": nos, "model":newmodel, "maintenanceType":this.formInline.maintenanceType, "maintenanceStartTime":moment(mTime[0]).format('YYYY-MM-DD HH:mm:ss'), "maintenanceEndTime":moment(mTime[1]).format('YYYY-MM-DD HH:mm:ss'), "acceptStartTime":moment(aTime[0]).format('YYYY-MM-DD HH:mm:ss'), "acceptEndTime":moment(aTime[1]).format('YYYY-MM-DD HH:mm:ss'), }; }else if((mTime!=null&&(mTime.length!=1))&&aTime==null){ js = { "equipmentNos": nos, "model":newmodel, "maintenanceType":this.formInline.maintenanceType, "maintenanceStartTime":moment(mTime[0]).format('YYYY-MM-DD HH:mm:ss'), "maintenanceEndTime":moment(mTime[1]).format('YYYY-MM-DD HH:mm:ss'), }; }else if((aTime!=null&&(aTime.length!=1))&&mTime==null){ js = { "equipmentNos": nos, "model":newmodel, "maintenanceType":this.formInline.maintenanceType, "acceptStartTime":moment(aTime[0]).format('YYYY-MM-DD HH:mm:ss'), "acceptEndTime":moment(aTime[1]).format('YYYY-MM-DD HH:mm:ss'), }; }else{ js = { "equipmentNos": nos, "model":newmodel, "maintenanceType":this.formInline.maintenanceType, }; } console.log(js); return js; }, return request({ url: '/api/blade-equipment/maintenanceorder/queryAllForExcel', method: 'get', params: { ...params, }, timeout:18000, }) } QueryWrapper
-
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
