Javaweb项目实现文件导出功能

news2024/12/28 9:16:12

在我的项目中,我将模糊查询与文件导出结合使用,实现下载前端列表展示的数据到本地

导入maven坐标

<!--导出为表需要-->
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>3.16</version>
</dependency>
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>3.16</version>
</dependency>

前端部分代码及展示

<button  class="btn btn-default" onclick="exportExcel()">导出表格</button>
<input type="text" id="se1"
         placeholder="搜索" >
<input type="submit" onclick="jax(1)" value="查询" class="btn btn-default">



function jax(pagesize){
    var search = $("#se1").val();
    console.log(search);
    $.ajax({
        url:"/getLand",
        dataType:"JSON",
        data:{
            pagesize:pagesize,
            search:search
        },
        type:"POST",
        success:function (data) {
            $("#d1").children().remove();
            $("#tb").children().remove();
            $("#l1").children().remove();
            $("#l2").children().remove();
            $("#l3").children().remove();
            for (var i=0;i<data.content.length;i++){
                $("#tb").append(
                    "<tr>" +
                    "<td hidden='hidden'>"+data.content[i].lid+"</td>"+
                    "<td>"+data.content[i].purpose+"</td>"+
                    "<td>"+data.content[i].location+"</td>"+
                    "<td>"+data.content[i].mode+"</td>"+
                    "<td>"+data.content[i].area+"</td>"+
                    "<td>"+data.content[i].price+"</td>"+
                    "<td>"+data.content[i].actualarea+"</td>"+
                    "<td>"+data.content[i].issuedate+"</td>"+
                    "<td>" +
                    "<button onclick='updateLand("+data.content[i].lid+")'>修改</button>"+
                    "<button onclick='delLand("+data.content[i].lid+")'>删除</button>"+
                    "</td>"+
                    "</tr>");
            }
            $("#d1").append(
                "<span>"+"总共"+data.pageTotal+"页,共"+data.recordTotal+"条数据"+"</span>"
            )
            $("#l1").append(
                "<a onclick='left("+data.currentPage+")'>上一页</a>"

            )
            $("#l2").append(
                "<a onclick='right("+data.currentPage+","+data.pageTotal+")'>下一页</a>"
            )
            $("#l3").append(
                "<a onclick='sw("+data.pageTotal+")'>尾页</a>"
            )
        }
    })

}
function exportExcel() {
    var search = $("#se1").val();
    location.href = "/landExportExcel?search="+search;
}

 控制层代码

@RequestMapping("/landExportExcel")
public void landExportExcel(String search,HttpServletResponse response){
    search=search==null?"":search;
    landService.landExportExcel(search,response);
}

实现层代码

在这里可以自定义下载后excel的行标题以及文件名称等

@Override
public void landExportExcel(String search,HttpServletResponse response)  {
    LandMapper landMapper=sqlSessionTemplate.getMapper(LandMapper.class);
    // 创建Excel工作簿
    Workbook workbook = new XSSFWorkbook();
    // 创建工作表
    Sheet sheet = workbook.createSheet("Data");

    // 创建标题行
    Row headerRow = sheet.createRow(0);
    headerRow.createCell(0).setCellValue("ID");
    headerRow.createCell(1).setCellValue("土地证载明的土地用途");
    headerRow.createCell(2).setCellValue("具体位置");
    headerRow.createCell(3).setCellValue("供地方式及批复");
    headerRow.createCell(4).setCellValue("供地面积");
    headerRow.createCell(5).setCellValue("账面价值");
    headerRow.createCell(6).setCellValue("实际占地面积");
    headerRow.createCell(7).setCellValue("土地证发证时间");
    // 从数据库获取数据
    List<Land> resultSet = landMapper.landExportExcel(search);

    // 写入数据到Excel
    int rownum = 1;
    for (Land land : resultSet){
        Row row = sheet.createRow(rownum++);
        row.createCell(0).setCellValue(land.getLid());
        row.createCell(1).setCellValue(land.getPurpose());
        row.createCell(2).setCellValue(land.getLocation());
        row.createCell(3).setCellValue(land.getMode());
        row.createCell(4).setCellValue(land.getArea());
        row.createCell(5).setCellValue(land.getPrice());
        row.createCell(6).setCellValue(land.getActualarea());
        row.createCell(7).setCellValue(land.getIssuedate());
    }

    // 设置响应头信息
    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    //设置下载文件名称
     response.setHeader("Content-Disposition", "attachment; filename=\"data.xlsx\"");

    // 写入响应输出流
    try (OutputStream os = response.getOutputStream()) {
        workbook.write(os);
        workbook.close();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

控制层和service层需要根据自己的项目自行补充,至此即可实现在前端页面点击导出按钮下载excel文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2120106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法知识点————双指针【删除重复元素】【反转链表】

删除重复元素 题目&#xff1a;//给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数 思路&#xff1a…

CleanClip for mac(苹果电脑剪切板管理器)

CleanClip 是一款为 Mac 设计的强大剪贴板管理工具&#xff0c;它能够显著提升你的工作效率和生产力。无论是在日常办公中还是进行创意设计&#xff0c;CleanClip 都能帮助你更轻松地管理和使用剪贴板内容。让我们一起来探索一下这个功能丰富的软件吧&#xff01; 下载地址&am…

常见文档工具对比和选择

前言 文档工具的本质&#xff0c;其实都是将我们的文档内容标准化&#xff0c;在互联网环境上的文档&#xff0c;一般目前比较主流的是生成文档的 html 网页内容&#xff0c;而文档内容的作者都比较倾向于使用纯文本的 Markdown 进行书写&#xff0c;所以文档工具的核心内容主要…

蒙特卡罗方法——布丰投针实验近似计算圆周率python代码实现

布丰实验 数学原理 python代码 import random as rd import numpy as np import math import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams[font.family] SimHei # 或者 Microsoft YaHei matplotlib.rcParams[axes.unicode_minus] False # 解决负号- …

标签的ref属性

标签的ref属性 当我们想要获取一个标签对应的 DOM 元素的时候在 JavaScript 中&#xff0c;我们通过 document.getElementById() 来借助类选择器的写法获取&#xff0c;但是在 Vue 中&#xff0c;我们的 DOM 元素是挂载在同一个网页上的&#xff0c;这些名称难免会重复&#x…

《计算机算法设计与分析》笔记

第一章 算法概述 1.1算法性质&#xff1a; 输入、输出、确定性、有限性 1.2时间复杂度 上界记号O&#xff1a;如果存在正的常数C和自然数N0&#xff0c;使得当N≧N0时有f(N)≦Cg(N)&#xff0c;则f(N)有上界函数g(N)&#xff0c;记为f(N) O(g(N))。 同阶记号θ&#xff1a;…

OpenAI 联合 SWE 发布 AI 软件工程能力测试集,Gru.ai 荣登榜首

在 9 月 3 日&#xff0c;Gru.ai 在 SWE-Bench-Verified 评估最新发布的数据中以 45.2% 的高分排名第一。SWE-Bench-Verified 是 OpenAI 联合 SWE 发布测试集&#xff0c;旨在更可靠的评估 AI 解决实际软件问题的能力。该测试集经由人工验证打标&#xff0c;被认为是评估 AI 软…

机器学习之 SVD降维:图像压缩示例

引言 在处理大规模数据集时&#xff0c;数据降维是一项非常重要的任务。通过降维&#xff0c;我们可以减少数据的存储需求、加快计算速度&#xff0c;并且在某些情况下还能提高模型的性能。SVD&#xff08;Singular Value Decomposition&#xff0c;奇异值分解&#xff09;是一…

《垃圾回收的算法与实现》-算法-摘抄

本文是书籍《垃圾回收的算法与实现》的摘抄&#xff0c;不涉及算法源码及步骤讲解模块。 预备 对象由头(header)和域(field)构成。 头&#xff1a;对象中保存对象本身信息的部分&#xff0c;主要含有以下信息&#xff1a;对象的大小和种类。 域&#xff1a;对象使用者在对象…

cocosCreator实现一个验证码弹窗验证功能

公开文章地址 在 Cocos Creator 中实现一个6位数的验证码输入弹窗功能。主要包含以下三点 1、 可以连续输入验证码 2、 可以粘贴验证码 3、 可以连续删除验证码 前言 引擎版本: Cocos Creator 2.7.2 开发语言: ts 效果图 实现思路 1、 在弹窗界面放置6个输入框的精灵,每个精…

各种无人机飞行服务技术详解

随着科技的飞速发展&#xff0c;无人机&#xff08;Unmanned Aerial Vehicles, UAVs&#xff09;技术已成为推动多个行业变革的重要力量。从军事侦察到商业应用&#xff0c;再到日常生活中的娱乐拍摄&#xff0c;无人机的身影无处不在。本文将详细解析无人机飞行服务所涉及的关…

【OpenCV-图像形态学操作】礼帽与黑帽、梯度运算、开运算与闭运算、形态学-膨胀操作、形态学-腐蚀操作

1 形态学-腐蚀操作 import cv2 img cv2.imread(./img/dige.png)cv2.imshow(img, img) cv2.waitKey(0) cv2.destroyAllWindows()# 创建一个 3x3 的结构元素&#xff08;内核&#xff09; # np.ones() 函数用于生成一个指定形状的数组&#xff0c;其中所有的元素都初始化为 1# …

服务器深度解析:五大关键问题一网打尽

在科技飞速发展的今天&#xff0c;服务器的重要性不言而喻。但对于服务器的一些关键问题&#xff0c;你真的清楚吗&#xff1f;今天&#xff0c;我们就来为大家深度解析服务器的五大关键问题&#xff0c;满满的干货知识&#xff0c;让你轻松了解服务器的奥秘。 一、“路” 与 …

NS3的3.36版本将Eclipse作IDE

1 配置Eclipse 1.1 安装JDK JDK的tar包下载传送门 下载之后&#xff0c;在当前目录解压&#xff08;以jdk1.8.0_333为例&#xff09;。 sudo mkdir /usr/lib/jvm # 在/usr/lib/jvm目录下新建目录 sudo mv jdk1.8.0_333 /usr/lib/jvm # 将解压的文件移动到我们的新建目录下…

Re-ReST: Reflection-Reinforced Self-Training for Language Agents论文学习

文章首先提到了一个推理-动作轨迹数据集的问题。这些数据集经常会包括一些需要多步推理的任务。但是&#xff0c;无论是让人去取得这些数据&#xff0c;还是让更高质量的模型代劳&#xff0c;成本都太高了。因此最好是自我监督&#xff0c;自己产生数据来学习&#xff08;self-…

在Excel中通过Python运行公式和函数实现数据计算

目录 一、引言 1.1 背景介绍 1.2 Python in Excel 的意义 二、环境准备 2.1 安装必要的软件 2.2 配置 Excel 三、基础操作 3.1 输入 Python 代码 3.2 调用 Python 库 四、案例分析 4.1 数据读取与处理 4.1.1 读取 Excel 数据 4.1.2 数据处理 4.2 数据可视化 4.2…

SprinBoot+Vue学生信息管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

【信息论与编码原理】自学成才还在学ing

绪论 多的咱不写&#xff0c;只写干干的 点对点通讯系统模型 干扰和噪声不可避免 消息是 信息的载体&#xff0c;消息包含信息&#xff0c;是具体的非物理的 信息是有效的data 信号是 适合信道传输的物理量&#xff0c;可携带消息&#xff0c;可以显示或者描述 香农信息定义…

Java重修笔记 第五十二天 Junit

Junit 的使用 1. 为了方便程序员测试某一个方法而使用 2. 在方法上面加上 Test 并引用 5.X 版本 3. 就能在方法前面看到可运行的按钮 public class Homework07 {public static void main(String[] args) {}Testpublic void testList() {DAO<User> dao new DAO<&g…

大数据与人工智能:脑科学与人工神经网络ANN

文章目录 大数据与人工智能&#xff1a;脑科学与人工神经网络ANN一、引言ANN简介研究背景与应用领域发展背景应用场景 二、ANN背后的人脑神经网络人脑神经网络的专业描述神经元的结构信号处理 思考和认知过程认知功能的实现 对机器学习算法的启示 三、ANN的研究进展初始阶段&am…