java基于SSM框架使用POI的方式导出到excel表

基于POI实现Excel表的导入导出功能 对于批量数据的操作,在项目中引进Excel的导入和导出功能是个不错的选择。对于Excel表的结构,简单理解可以把它分成三部分(Sheet,Cell,Row),这三部分可以理解为excel表中的页,列,行。因此,我们想要获取到某一个单元的内容,可以通过获取该单元所在的页数、对应所在的行和对应的列数从而定位到该单位,继而便可执行操作从而获取其中的内容。本文在SSM环境下基于Java的POI实现对exc... 阅读详情

很多时候我们数据库里的数据需要导出到excel表上来进行分析,今天小编写了这篇文章来讲解java导出数据到excel中。

上面标注红框的包是导出到excel必须要的包,其他的可以根据自己的ssm框架酌情增减

标红框的是导出到excel需要配置的xml,其他的是ssm框架需要引入的配置文件,这需要大家有ssm框架的基础。下面是配置文件的代码,这个我没写具体的注释大家直接引用就行

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation=
  "http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/maven-v4_0_0.xsd">
   <dependencies>
<!-- POI -->  
<dependency>  
    <groupId>org.apache.poi</groupId>  
    <artifactId>poi</artifactId>  
    <version>3.8</version>  
    <exclusions>  
        <exclusion>  
            <artifactId>commons-codec</artifactId>  
            <groupId>commons-codec</groupId>  
        </exclusion>  
    </exclusions>  
</dependency>  
<dependency>  
    <groupId>org.apache.poi</groupId>  
    <artifactId>poi-ooxml</artifactId>  
    <version>3.8</version>  
</dependency>  

   </dependencies>
   </project>                 

 

首页

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${pageContext.request.contextPath }/user/export.do">导出</a>
</body>
</html>

 控制层(Controller)

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.lm.pojo.User;
import com.lm.service.UserService;

/**
 * 
 * @author LM
 *
 */
@Controller
@RequestMapping("/user")
public class UserController {
	
	@Autowired
	private UserService userService;
	User user;
	/**
	 * 用于导出excel的查询结果
	 * @param queryJson
	 * @return
	 */
	@RequestMapping("/export.do")
	public void export(HttpServletRequest request, HttpServletResponse response) {
		//查询用户表的全部数据
		 List<User> userlList = new ArrayList<User>(userService.getUserDeviceForExcel());
		 //查询用户表有多少行记录
		 Integer count=userService.selectAll();
		 //创建excel表的表头
		String[] headers = {"姓名", "性别", "年龄" };
		   //创建Excel工作簿
		HSSFWorkbook workbook=new HSSFWorkbook();
		//创建一个工作表sheet
		HSSFSheet sheet=workbook.createSheet();
		//创建第一行
		HSSFRow row=sheet.createRow(0);
		//定义一个单元格,相当于在第一行插入了三个单元格值分别是 "姓名", "性别", "年龄"
		HSSFCell cell=null;
		//插入第一行数据
		for(int i=0;i<headers.length;i++) {
			cell=row.createCell(i);
			cell.setCellValue(headers[i]);
		}
		//追加数据
				for(int i=1;i<=count;i++) {
					HSSFRow nextrow=sheet.createRow(i);
					HSSFCell cell2=nextrow.createCell(0);
					cell2.setCellValue(userlList.get(i-1).getName());
					cell2=nextrow.createCell(1);
					cell2.setCellValue(userlList.get(i-1).getSex());
					cell2=nextrow.createCell(2);
					cell2.setCellValue(userlList.get(i-1).getAge());
				}
				//创建一个文件
				File file=new File("e:/poi_test.xls");
				try {
					file.createNewFile();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				//将内容存盘
				FileOutputStream stream;
				try {
					stream = FileUtils.openOutputStream(file);
					workbook.write(stream);
					stream.close();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				
				
		}
}

Service层

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.lm.dao.UserDaoMapper;
import com.lm.pojo.User;

/**
 * 
 * @author LM
 *
 */
@Service
@Transactional
public class UserService {
	@Autowired
	private UserDaoMapper  userDao;
	/**
	 * 根据查询条件查询出所有的记录
	 */
	public List<User> getUserDeviceForExcel() {
		return userDao.getUserForExcel();
	}
	/**
	 * 查询用户表总共有多少条记录
	 */
	public Integer selectAll() {
		return userDao.selectAll();
		
	}
}

 Dao层

import java.util.List;

import com.lm.pojo.User;

public interface UserDaoMapper {  
	  
	  /**
		 * 根据查询条件查询出所有的记录
		 */
		List<User> getUserForExcel();
		/**
		 * 查询用户表总共有多少条记录
		 * @return
		 */
		Integer selectAll();
	}  

 

 

Mapper映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lm.dao.UserDaoMapper">
 
  <!--根据查询条件查询出所有的记录,不用分页,用于excel导出功能  -->
    <select id="getUserForExcel" parameterType="com.lm.pojo.User" resultType="com.lm.pojo.User">
        select name,sex,age
        from juser_table 
    </select>
    <!-- 查询总共有多少条记录 -->
    <select id="selectAll" resultType="Integer">
    select count(*) from juser_table
    </select>
</mapper>

数据库情况

 

SSM框架结合Apache POI实现Excel文件导入导出示例 SSM框架,即Spring、SpringMVC和MyBatis的集成,是JavaWeb开发领域的经典组合。它将企业级应用开发中的依赖注入、Web层处理、和数据持久化三大核心功能整合在一起,形成了一个简洁且强大的开发体系。在此节中,我们可以分享一个实际的案例,描述在特定项目中,如何通过整合SSM框架和Apache POI实现Excel数据导入导出的功能。具体包括:项目背景和业务需求采用的整合方案和实现步骤整合过程中遇到的问题和解决方案功能实现后的测试结果和性能评估。 阅读详情

相关推荐

SSM框架下基于Apache POI的Excel导入导出实战

架构清晰:SSM三层协作,职责分明内存可控:善用SXSSF流式写入,避免OOM安全可靠:校验文件类型、大小、内容,防范攻击性能卓越:MyBatis批量插入 + JDBC流式读取体验友好:动态表头匹配、结构化错误反馈只要你掌握了这些核心要点,不管是导出10万行日志,还是解析复杂的多Sheet报表,都能游刃有余地应对。毕竟,在这个数据驱动的时代,谁能更好地驾驭Excel,谁就掌握了通往业务深处的钥匙 🔑✨本文还有配套的精品资源,点击获取。

weixin_36235398的博客 685

SSM整合 - 数据导出Excel

Maven准备jar包 - 数据库准备 - 封装类 - 编写接口和方法 - 编写Service - 编写Controller - 前端调用 - 实现导出

chrismurphy的博客 426

基于SSM的POI导入导出Excel实战

基于SSM的POI导入导出Excel实战 基于ssm框架的poi导入导出excel-mvc模式体验-增加删除修改搜索

SSM框架使用POI技术导出Excel表

POI框架是Apache开源的可以导出导入Excel表的,本博客介绍在SSM(Spring+SpringMVC+Mybatis)项目里,如何使用POI框架,导出Excel表 这里我们先要去Apache官网下载jar 然后,就可以先编程了 先提供一个封装的httpservlet请求和添加数据的类 [java] view plain 

冷月宫主的专栏 1315

基于SSM框架下POI实现Excel导入/导出相关包

基于SSM框架下的POI实现Excel的导入与导出,对相关jar包的版本有很大要求。我在这里提供3.8这个版本,自己也成功搭建项目,实现导入导出。在这里与大家分享!

基于ssm框架的poi导入导出

基于ssm框架的poi导入导出,买不了吃亏,买不了上当,凑字数

SSM框架poi导入导出Excel(MySQL)

Excel导入的MySQL的方法: 浏览器选择excel文件,传至服务端,在服务端解析此excel并将数据导入到数据库中。 源码下载 这里只保存关键代码,详细的源代码可点击上面源码下载前往下载 1,项目结构: 2,导入页面: jsp: &lt;table&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="file" id="upload"...

dirkwlk的博客 1万+

SSM 下 Excel的导入导出

在SSM下 使用POI实现Excel的导入/导入 里面还有一些方法类 可供参考

JavaScript Promise 异步编程全解析:从基础概念到实战避坑指南

异步编程是处理网络请求、文件读写等非阻塞操作的核心技术,旨在提升应用性能和响应能力。其核心原理在于通过事件循环和任务队列管理异步任务,避免主线程阻塞。Promise 作为 ES6 引入的异步编程管理范式,提供了标准化的解决方案,其技术价值在于通过状态机(Pending、Fulfilled、Rejected)和链式调用,优雅地解决了回调地狱问题,显著提升了代码可读性和可维护性。在应用场景上,Promise 广泛应用于前端 API 调用、Node.js I/O 操作以及任何需要处理异步流程的环节。本文深入剖析

weixin_34128839的博客 843

SSM框架导入导出Excel文件

SSM框架,利用poi导入excel文件到数据库,导出excel,SSM框架搭建

java poi 实现excel的导入与导出

java poi 实现excel的导入与导出,使用java反射获取类,通用导入与导出适合二次开发的一个大型项目框架

在SSM下基于POI实现Excel表的导入/导出

对于批量数据的操作,在项目中引进Excel的导入和导出功能是个不错的选择。对于Excel表的结构,简单理解可以把它分成三部分(Sheet,Cell,Row),这三部分可以理解为excel表中的页,列,行。因此,我们想要获取到某一个单元的内容,可以通过获取该单元所在的页数、对应所在的行和对应的列数从而定位到该单位,继而便可执行操作从而获取其中的内容。本文在SSM环境下基于Java的POI实现对exc...

|张超|的博客 2743

Project 编制进度计划【项目管理】

Project 项目管理编制进度计划详解。

m0_52861684的博客 5084

Java-poi导出Excel文件名有中文

Java-poi导出Excel文件名有中文问题描述首先其次最后 问题描述 SSM框架下,java项目poi插件导出Excel文件的文件名中有中文,会出现乱码 首先 fileName = &quot;常量表.xls&quot;;//创建文件名 fileName = URLEncoder.encode(fileName, &quot;UTF-8&quot;); response.setHeader(&quot;Content-disposition...

Coo~的博客 7188

PCIe网卡驱动实现分析(三)--- cache一致性

在现代处理器系统中,CPU的主频远高于主存读写速度,主存的读写速度成为程序执行效率的瓶颈;为了解决这个问题,在CPU和主存之间引入了Cache存储器,基于程序执行的局部性原理,在程序执行时,将正在使用的数据从主存拷贝一份到Cache,这样CPU就可以直接从Cache读写数据以改善主存读写速度慢的问题;

a935854743的博客 1776

MTK平台高效部署Qwen2.5大模型:从转换到推理全流程解析

本文详细解析了在MTK平台上高效部署Qwen2.5大模型的全流程,涵盖从环境准备、模型转换与量化,到编译部署与上机推理。重点介绍了如何利用MTK GAI部署工具包进行模型转换和量化,以适配MTK硬件,并最终在设备上成功运行Qwen2.5模型,为边缘侧AI应用提供实践指南。

weixin_29041195的博客 504

SSM导出Excel (POI)

我的实现是在项目的基础之上话不多说,直接撸代码....一.导出Excel表1.添加所需jar (pom.xml)&lt;!-- 导出Excel所需依赖 --&gt; &lt;dependency&gt;     &lt;groupId&gt;org.apache.poi&lt;/groupId&gt;     &lt;artifactId&gt;poi-ooxml&lt;/artifactId&g...

w_m_5的博客 5619

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。

2402_82802238的博客 2800

java ssm框架使用poi_基于SSM的POI导入导出Excel实战第一篇-SSM框架的整合

业务背景:在JavaWeb应用开发中,经常需要将应用系统中某些业务数据导出到Excel中,又或者需要将这些业务数据先收集到Excel然后一键导入到系统业务需求:如何用Java实现导入导出Excel需求分析:目前流行的Java导入导出Excel的框架有POI跟JXL,这两者的优缺点在这里我就不作比较了,感兴趣的童鞋可以自行搜索了解一下;技术选型:从本文开始,我将分享一下如何基于SSM框架+POI实现...

weixin_32744173的博客 494

手把手教你用TP4056和PMOS管搭建锂电池自动切换电路(含元器件选型指南)

本文详细介绍了如何使用TP4056和PMOS管搭建锂电池自动切换电路,包括核心架构设计、元器件选型指南和PCB布局优化。通过智能充电算法和电源路径切换模块,实现外部供电与锂电池的无缝切换,提升便携式设备的电源管理效率。

julia4scientist的博客 887

MaxEnt软件的下载与安装

1、下载网站:http://lucky-boy.ys168.com/ (这是之前在网上搜到的,里面有许多软件安装包,感谢网页主的资源共享,违权必删)

weixin_42191203的博客 2万+

Maven整合SSM 框架,POI插件导出EXCEL文件

Maven+SSM+poi导出Excel文件片头背景描述环境正片1part2part3part(主要)4part5part结果片尾花絮xls和xlsx[导出文件名乱码](https://blog.youkuaiyun.com/qq_28869233/article/details/87979552)日期转化文字符串输出调整列宽加批注鸣谢 片头 背景描述 最近被提出需求,要求网站实现对数据库的数据进行查询,并要...

Coo~的博客 1319

STM32 TIM3硬件XOR+复位模式实现霍尔信号精准捕获

霍尔传感器是电机控制系统中获取转子位置的关键器件,其三路数字信号需通过高精度、低延迟的边沿检测机制转换为电角度信息。其核心原理在于利用定时器输入XOR逻辑合并多路信号,并结合从模式复位(Reset Mode)实现硬件级时间间隔测量——每次跳变强制计数器清零,使CNT值直接表征换相周期。该方案规避了软件轮询的不确定性,显著提升FOC控制的实时性与鲁棒性。典型应用场景包括BLDC/FOC电机驱动、机器人关节伺服及工业变频器设计,尤其适用于STM32F4系列等具备硬件XOR与从模式控制器的MCU平台。

weixin_28931507的博客 91

SSM框架下的POI导入导出功能

在pom.xml中添加导入jar包 pom.xml: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.14</version> &lt...

No上善若水的博客 2741

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(一)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 2418

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

在SSM下基于POI实现Excel表的导入(多sheet)/导出

在SSM下基于POI实现Excel表的导入(多sheet)/导出 学习Excel编写项目时的一些心得,适合小白观看。项目中实现了Excel中多个sheet的导入和单数表的导出功能,对于多数据表指定导出可自行添加if或者for循环来实现。Excel表的结构,简单的分成 Sheet,Cell,Row 三部分,即页,列,行。因此,想要获取到内容,可以先sheet,然后再边一个sheet中的行数,在遍历列...

SS_Lion的博客 860

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: java实现美图秀秀的照片拼接功能(照片数量任意)
下一篇: 看雷丰谷大神视频学SpringMVC源码
记录bug的人
博客等级 码龄9年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值