简单的ssm+poi导出数据到excel表实现

SSM 框架整合POI插件技术导出EXCEL文件 前言本次实践的项目过程当中,对于基于SSM框架实现的项目过程,其中涉及到了前端导出EXCEL的过程进行整理和汇总,同时对于在网上查找到的资料等进一步进行解释和理解,对于网络中的资料,总是会有些不适合自己项目的地方,这个也是大家在学习过程当中会遭遇到,因为别人描述的问题,是他遇到的,而这次个人遇见,总结了下,可能会是大家都能遇见的实现较为复杂的SQL拼接出来的实现的表格导出下载成为EXCEL文件。由... 阅读详情

1.需求分析:从数据库提取需要的数据在前端页面显示,前端页面导出,后端实现
2.建立数据库,根据字段建立相应的excel列名(需要先建好excel模板)
3.编写工具类
public class InsertRow {
private String excelPath;
private int insertStartPointer;
private String sheetName;
private List<List> context;

/**
 * 构建一个excel(2010)文档插入数据对象,此对象包含要要操作的excel文档对象和要插入的数据以及掺入的位置
 * @param excelPath excel文件路径
 * @param insertStartPointer 插入的行号,从0开始
 * @param sheetName 工作表名称
 * @param context 要插入的内容
 */
public InsertRow(String excelPath, int insertStartPointer, String sheetName,List<List<String>> context) {
	super();
	this.excelPath = excelPath;
	this.insertStartPointer = insertStartPointer;
	this.sheetName = sheetName;
	this.context = context;
}

public void insertRows() {
	XSSFWorkbook wb = returnWorkBookGivenFileHandle();
    XSSFSheet sheet = wb.getSheet(sheetName);
    for (List<String> list : context) {
    	XSSFRow row = createRow(sheet, insertStartPointer);
        createCell(row,list);
	}
    
    saveExcel(wb);
    

}
private void saveExcel(XSSFWorkbook wb) {
    FileOutputStream fileOut;
    try {
        fileOut = new FileOutputStream(excelPath);
        wb.write(fileOut);
        fileOut.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}
private XSSFCell createCell(XSSFRow row, List<String> cells) {
	for (int i = 0; i < cells.size(); i++) {
		row.createCell(i).setCellValue(cells.get(i));
	}
    return null;
}
private XSSFWorkbook returnWorkBookGivenFileHandle() {
	XSSFWorkbook wb = null;
    FileInputStream fis = null;
    File f = new File(excelPath);
    try {
        if (f != null) {
            fis = new FileInputStream(f);
            wb = new XSSFWorkbook(fis);
        }
    } catch (Exception e) {
    	e.printStackTrace();
        return null;
    } finally {
        if (fis != null) {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return wb;
}
private XSSFRow createRow(XSSFSheet sheet, Integer rowIndex) {
    XSSFRow row = null;
    if (sheet.getRow(rowIndex) != null) {
        int lastRowNo = sheet.getLastRowNum();
        sheet.shiftRows(rowIndex, lastRowNo, 1);
    }
    row = sheet.createRow(rowIndex);
    return row;
}

}
4.service接口实现类

@Override
public File getExcel(List list, String realPath) {
List<List> dataForExcel = getDataForExcel(list);
File file = madeMashineReportExcel(dataForExcel, realPath);
return file;
}

/**

  • 为生成Excel数据方法
    */
    private List<List> getDataForExcel(List list) {

    List<List> llist = new ArrayList<List>();

    for (int n = list.size()-1; n > 0 ; n–) {
    SaleInfo saleInfo = list.get(n);
    List strlist = new ArrayList();
    String str = saleInfo.toString();
    //打印测试
    //System.out.println(str+"==============》");

     String[] arr = str.split(",");
    
     for(int i = 0; i < arr.length; i++){
     	strlist.add(i, arr[i]);
     }
     llist.add(strlist);
    

    }
    return llist;
    }

private File madeMashineReportExcel(List<List> dataForExcel, String rootPath) {
// TODO Auto-generated method stub
String templateName = “saleinfo.xlsx”;
String resultFileName = rootPath+"/template/temp/saleinfo.xlsx";

try {
	FileUtils.copyFile(new File(rootPath+"/template/"+templateName), new File(resultFileName));

	new InsertRow(resultFileName,2,"Sheet1",dataForExcel).insertRows();


} catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}


return new File(resultFileName);

}
5.前端页面关键代码
<% request.setAttribute(“ctx”, request.getContextPath()); %>
生成报表
6.controller
@Controller
public class UserInfoController {
@Autowired
private SaleInfoService saleInfoService;
/**
* 查询所有信息
* @param model
* @return
/
@RequestMapping(value="/selectInfo.html",method=RequestMethod.GET)
public String selectAllUserInfo(Model model,HttpSession session/
,
@RequestParam(required=true,value=“pageNum”,defaultValue=“1”)Integer pageNum,
@RequestParam(required=true,value=“pageSize”,defaultValue=“20”)Integer pageSize*/){
Store store=(Store) session.getAttribute(Constants.USERINFO_SESSION);
String salename=store.getStorename();
//PageHelper.startPage(pageNum, pageSize);
List list=saleInfoService.selectAllByStorename(salename);
//PageInfo pageInfo=new PageInfo<>(list);
//model.addAttribute(“pageInfo”,pageInfo);
model.addAttribute(“saleInfolist”,list);
session.setAttribute(“saleInfolist”, list);
return “userInfo”;
}

/**
 * 生成报表
 * @param request
 * @param response
 * @param session
 * @throws IOException
 */
@RequestMapping("/getExcel")
public void getExcel(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException{
	String realPath = request.getSession().getServletContext().getRealPath("");
	//从session中获取list
	List<SaleInfo> list = (List<SaleInfo>) session.getAttribute("saleInfolist");
	File excelByDate = saleInfoService.getExcel(list,realPath);
	byte[] data = FileUtils.readFileToByteArray(excelByDate);
	String fileName = excelByDate.getName();
	fileName = URLEncoder.encode(fileName, "UTF-8");  
	response.reset();  
	response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");  
	response.addHeader("Content-Length", "" + data.length);  
	response.setContentType("application/octet-stream;charset=UTF-8");  
	OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());  
	outputStream.write(data);  
	outputStream.flush();  
	outputStream.close();  
	excelByDate.delete();

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

相关推荐

SSM框架结合Apache POI实现Excel文件导入导出示例

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

weixin_34374684的博客 850

使用POI批量导出Excel文件(SSM)

使用POI批量导入Excel文件(SSM)

weixin_44812756的博客 1214

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

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

weixin_36235398的博客 685

SSM+POI 导入导出excel文件

目录参考网址指路--->1. 导入依赖2. 前端页面3. excel文件4.1 第一种导入方法(没有日期类型)4.2 第二种导入方法5.导出 参考网址指路—> 使用ssm和poi实现excel的导入导出(简单详细,附源码,适合入门的小白) SSM中使用POI实现excel的导入导出 1. 导入依赖 <!-- poi上传下载组件 --> <dependency> <groupId>org.apache.poi</gr

weixin_45266846的博客 893

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

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

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1559

ssm框架使用poi实现数据导出到excel,并弹框下载

数据的导出是我们很常见的一个功能,实现起来也不复杂 我们先把poi的jar包导入,在pom.xml里 org.apache.poi poi 3.13 然后我们把要导出的实体类写出来 public class ExcelBins { private String binsId; private String ording; private String pho

糯叽叽的博客 1万+

STM32F4实战:手把手教你实现USB OTG双模式切换(Host/Slave)

本文详细介绍了如何在STM32F4上实现USB OTG双模式切换(Host/Slave),包括硬件架构解析、软件实现机制、主机模式下的U盘读写以及从机模式下的自定义设备开发。通过实战案例和优化技巧,帮助开发者快速掌握USB双角色功能,提升嵌入式系统开发的灵活性和效率。

u9v0w的博客 730

在SSM下使用POI实现Excel表的导入/导出

导出就是将List转化为Excel(listToExcel) 导入就是将Excel转化为List(excelToList) POI Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 我们知道要创建一张excel你得知道excel由什么组成,比如说sheet也就是一个工作表格,例如一行

nice_fly的博客 9913

电力电子新手必看:COT控制模式的工作原理与典型应用场景解析

本文深入解析了COT控制模式的工作原理及其在电力电子领域的典型应用。COT控制(恒定导通时间控制)通过固定导通时间机制,解决了传统滞环控制的问题,特别适用于需要快速瞬态响应和高效率的应用场景,如CPU/GPU供电和便携设备电源管理。文章详细介绍了COT控制的核心流程、技术特点及设计实践中的关键考量,帮助电力电子新手快速掌握这一技术。

weixin_30745553的博客 522

PCB设计必看:铜皮厚度与载流能力对照表(附Excel计算工具)

本文深入解析了PCB设计中铜皮厚度与载流能力的核心关系,提供了基于IPC-2152标准的动态计算逻辑与实用Excel工具。文章不仅分享了载流对照表,更重点剖析了影响载流能力的关键因素(如铜厚、线宽、温升、布线层),并给出了高电流设计的实战技巧与测试验证方法,帮助工程师规避常见陷阱,实现从理论到实践的闭环设计。

weixin_29228781的博客 722

SSM下Excel导出(SSM下的POI导入、导出,简单详细,附带源码)

今天公司要做导出功能,所以就在SSM下研究了下 发现还挺简单的做了个工具类以便自己以后使用 使用的第三方架包是POI,使用的框架是SSM 第三方架包下载地址: POI官网 如果是使用的maven创建的项目,直接导入依赖就好 &amp;amp;lt;dependency&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.apache.poi&amp;amp;lt;/groupId&amp;amp;gt

念念不忘,必有回响 3961

元学习与Transformer的结合:Meta-Transformer架构解析

我们生活在一个信息爆炸的时代,每天都会产生海量的数据。在深度学习领域,如何让模型更高效地学习、更快地适应新的任务,一直是科学家们努力的方向。元学习和Transformer都是深度学习中的重要概念,它们各自有着独特的优势。本文的目的就是深入剖析将元学习和Transformer结合起来的Meta - Transformer架构,探讨它的原理、应用以及未来发展。我们会从基础概念讲起,逐步深入到架构的各个方面,让大家对Meta - Transformer有一个全面的了解。

AI智能探索者的博客 1052

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

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

|张超|的博客 2743

YOLOv26详解 | 一文带你从代码角度深入理解ultralytics最新作品yolov26的创新 | 训练、推理、验证、导出 (附网络结构图PPT可用,全网最全)

YOLOv26带来多项创新:1)采用双检测头机制(One-to-Many和One-to-One)实现端到端无NMS推理;2)移除DFL简化边界框回归;3)引入ProgLoss+STAL优化小目标检测;4)使用MuSGD优化器提升训练稳定性。网络结构方面,SPPF模块增加shortcut连接,并在C3k2中引入PSABlock注意力机制。该版本更注重实际部署,简化了推理流程,提升硬件兼容性。教程涵盖模型训练、验证、推理及导出全流程,支持多种格式转换如ONNX、TensorRT等,适合工业应用场景。

Snu77的博客 4066

关于如何在matlab中导入并翻译Hypemesh导出的大型刚度矩阵txt文本

如何将它翻译成matlab可以使用的矩阵变量,并参与运算。 由于这个大型刚度矩阵125万x125万≈1e12。matlab甚至其他计算软件无法保存这个大的一个矩阵文件。而这个刚度矩阵作为稀疏矩阵其中非零元素的数目只有有500多万。采用sparse稀疏矩阵技术是可以保存。 这里简单介绍一下这个Hypemesh导出的大型刚度矩阵txt文本。如图DMIG开头的标识符是换行符,后面两列是表示这条非零元素在刚度矩阵中列数的信息。我们已经将左边字母和符号等批量删除,得到了右边textread函数可以...

wenyusuran的专栏 1795

poi批量导入导出Excel(三、通过模板导出Excel并能实现导入多个sheet表)

本项目基于SSM框架,简单封装了Excel批量导入导出功能,不用建数据库表一键导入导出Excel,不过这样只适用于对导入的Excel表进行转换,通过模板导出Excel并且能实现导入多个sheet表。上一篇介绍了建表导入导出Excel(点击跳转)一、下载poi jar包:    点这里下载:poi 3.8/3.9/3.10三个版本下载                         poi 3.17...

未曾远去 6247

基于Simulink的光伏-储能-柴油机混合微网仿真

摘要:本文基于Simulink平台构建光伏-储能-柴油机混合微网仿真模型,实现可再生能源与备用电源的协同控制。通过光伏优先、储能调节、柴油机兜底的规则控制策略,在24小时仿真中验证了系统在晴天、阴天和夜间三种典型工况下的运行性能。模型采用PVArray模块模拟光伏发电,Simscape电气库构建储能系统,自定义MATLAB函数实现柴油机启停逻辑和能量管理。仿真结果显示系统功率平衡误差<5%,储能SOC维持在20%-80%,柴油机日均运行时间<4小时,满足设计指标。文章详细说明了建模步骤、参数设置

xiaoheshang_123的博客 68

使用ssm和poi实现excel的导入导出(简单详细,附源码,适合入门的小白)

最近在学习中遇到了excel的导入和导出操作,上网查了很长时间,没有一个特别适合小白的项目,因此自己做了一个简单的可以实现导入导出功能的项目,自己做了好长时间,特此记录一下,废话不多说,看代码。 1工程目录结构 2.在maven项目中导入相关的jar包依赖 <dependency> <groupId>commons-fileupload</groupId&gt...

爱哭的毛毛虫的博客 5388

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SSM框架poi实现excel导出

标题 前台页面 <td style="vertical-align:top;padding-left:2px;"> <a class="btn btn-light btn-xs" onclick="toExcel();"title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download b...

am的博客 780

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

SS_Lion的博客 860

poi批量导入导出Excel(一、需要建数据库表)

本项目基于SSM框架,简单封装了Excel批量导入导出功能,需要建数据库表将数据导入到表中,查询遍历出数据导出Excel,下一篇文章介绍下不用建数据库表一键导入导出Excel(点击跳转),不过这样只适用于对导入的Excel表进行转换。一、下载poi jar包:     点这里下载:poi 3.8/3.9/3.10三个版本下载                         poi 3.17最新版本...

未曾远去 5292

ssm的excel表格导出功能-基于poi方式

因前几天找的layui方式都不可兼容ie8,所以现在只能用poi方式来写了,话不多说,直接上代码。 先把poi包导进来,此贴提供maven方式,直接把这段代码复制到maven 的pom.xml中标签中即可。没使用maven的可以去下载然后导入就ok啦:http://poi.apache.org/download.html <!--excel解析poi包--> <depen...

zhi258wei的博客 2495

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

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

Coo~的博客 1319

SSM中利用POI导出数据库到excel表格

jsp: 导出数据js: function export_data(){ window.location.href="${ctx}/swipeRecord/reprotRecord"; } controller: /** * 导出数据 * * @param response * @return * @throws IOException */ @R

nvxiaq的博客 2515
上一篇: ssm+maven+mysql+sql server多数据源使用(新手上路,欢迎大神留言指教)
下一篇: tomcat自启动
javaXingzhe
博客等级 码龄8年 3145粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值