思路:将excle文件导出至服务器的临时文件中,然后再读取excel文件,输出到response流中下载到本地。
第一步:将数据导出到服务器临时文件中:
public static void main(String[] args) {
// TODO Auto-generated method stub
//添加excel
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet();//创建sheet表
wb.setSheetName(0,"学生表",HSSFWorkbook.ENCODING_UTF_16);//参数分别为sheet表索引值,sheet表的名字,处理中文问题用的编码
//合并单元格,Region(起始行号,起始列号,终止行号,终止列号)即起始单元格,终止单元格
//列号限制为short型
sheet.addMergedRegion(new Region(0,(short)0,0,(short)3));
HSSFCellStyle style=wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //创建居中样式,更多单元格格式设置百度“POI导出Excel”
//title标题部分
HSSFRow row=sheet.createRow(0);//导入第一行
HSSFCell cell =row.createCell((short)0);//导入第一单元格
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("学生表");
cell.setCellStyle(style);//单元格添加居中样式
//head表头部分
row=sheet.createRow(1);
cell=row.createCell((short)0);
cell.setCellValue("id");
row.createCell((short)1).setCellValue("name");
row.createCell((short)2).setCellValue("age");
cell=row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);//中文乱码问题,只对当前单元格起作用,目前我还不知道有什么一劳永逸的办法
cell.setCellValue("生日");
// cell.setCellValue("name");
// cell.setCellValue("age");
// cell.setCellValue("birth");
//body数据部分,写法与表头设置相同,这里不写了
//导出
try{
//创建文件夹
File file=new File("F:/student");
if(!file.exists() && !file.isDirectory()){
//当文件夹不存在或者不是文件夹时创建文件夹
file.mkdir();
}
// FileOutputStream out=new FileOutputStream("F:/student.xls");
// wb.write(out);//导出至服务器中
// out.close();
// System.out.println("导出完毕!");
}catch(Exception e){
e.printStackTrace();
}
}
}
第二步:导出到本地:
File file =new File("F:/student/student.xls");
if(file.exists && !file.isDirectory()){
//response.reset();//这句话查资料的时候好多都有写,但是我添加项目中时报错
response.setContentType("application/octet-stream");
try{
String excelName=URLEncoder.encode("学生表.xls","utf-8");//下载文件名称(客户端弹出保存窗口时看到的(默认的保存名称))
response.setHeader("Content-Disposition","attachment; filename=excelName);
}catch(Exception e){
e.printStackTrace();
}
response.setContentLength((int)file.length());
byte buffer[]=new byte[4096];
BufferedOutputStream out=null;
BufferedInputStream in=null;
//写缓冲区
try{
out=new BufferedOutputStream(response.getOutpStream());//response.getOutpStream()可能会报错,但是不影响代码运行,网上查资料貌似是tomcat6的bug
in=new BufferedInputStream(new FileInputStream(file));
int n=(-1);
while((n=in.read(buffer,0,4096))){
out.write(buffer,0,n);
}
reponse.flushBuffer();
}catch(Exception e){
e.printStackTrace();
}finally{
if (input != null)
try {
input.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (output != null)
try {
output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
至此就可以将excel文件导出至本地了,另外导出到本地的部分还可以用于导出.txt文件。
整理这些资料借鉴了很多大神的博客和文章,做完项目都已经忘了他们的地址,这里只能表示感谢了!!
分享到:
相关推荐
在Java编程环境中,导出Excel是一项常见的任务,特别是在数据处理和报表生成的场景下。这里我们将深入探讨如何使用Java来实现Excel的导出功能。 首先,我们需要了解Java中用于处理Excel的主要库,Apache POI是一个...
导出excel业务流程: ---------------------------------------------------------- 1、用户点击按钮向服务器发送请求同时将页面数据一同发送到服务器端 2、服务器端接收请求和数据 3、经过servlet对接收到的数据...
在Java中,如果你需要导出Excel文件,Java POI是一个非常实用的工具。下面将详细介绍如何使用Java POI来实现Excel的导出。 1. **引入依赖** 在Java项目中使用POI,首先需要在项目的构建文件(如Maven的pom.xml或...
在Java Web开发中,数据导出到Excel是常见的需求,特别是在数据分析、报表生成以及数据交换等场景。本项目就是这样一个示例,它利用了Apache POI库来处理Excel文件的生成,使得Java程序能够方便地操作Excel数据。...
### Java导出Excel文件并下载到客户端(含解决中文乱码问题) 在现代的企业级应用开发中,数据导出功能是非常常见的一种需求。特别是在B/S架构的应用中,用户经常需要将查询结果导出为Excel文件以便进行后续的数据...
标题"Java导出excel的Demo"表明我们将探讨如何使用Java和Apache POI创建一个简单的Excel导出示例。在Eclipse这样的集成开发环境中,配合Java 1.6版本,我们可以遵循以下步骤: 1. **引入Apache POI依赖**: 首先,...
在Java开发中,处理大数据量的Excel导出是一项常见的任务,尤其当数据量达到数十万条时,单个Excel文件可能会遇到性能瓶颈或格式限制。本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们...
2. **导出Excel文档**: 使用XSSFWorkbook类处理.xlsx文件,而HSSFWorkbook处理.xls文件。创建工作簿、工作表、行和单元格,然后设置值和格式。例如,创建一个简单的Excel表格: ```java XSSFWorkbook workbook ...
在Java编程领域,导入和导出Excel表格是一项常见的任务,特别是在数据处理、报表生成和数据分析等场景中。本项目提供了一个整合了Spring、Hibernate和Struts2(简称SSH)三大框架的小型应用示例,利用Apache POI库来...
2、服务器端接收请求和数据 3、经过servlet对接收到的数据进行处理 4、数据正确,创建excel文件,将数据保存到文件中 5、servlet将文件发送到客户端 6、客户端保存文件 ------------------------------------------...
总结起来,Apache POI为Java开发者提供了一种强大且灵活的方式来处理Excel文件,无论是通过Servlet从服务器生成文件,还是在本地通过main方法创建文件。理解如何使用POI库可以帮助你更好地集成Excel功能到你的Java...
总的来说,这个Java导出Excel文件的示例涵盖了基础的文件操作、数据处理和Web服务交互,是学习和实践Java与Excel集成的好素材。通过深入理解和实践这些代码,你可以更好地掌握Java在企业级应用中处理数据的能力。
Java导出Excel是一个常见的需求,尤其在Web应用中,用户可能需要将数据导出为Excel格式以便于分析或存储。这个过程涉及到多个技术点,包括文件处理、HTTP响应头设置以及数据格式化等。以下是对这个主题的详细阐述: ...
### Java导出文件名处理详解 在Java Web开发过程中,经常需要实现文件的导出功能。这涉及到将数据从服务器端导出为特定格式的文件(如Excel、PDF等),并提供给用户下载。在这个过程中,正确处理文件名是非常重要的...
接下来,我们探讨如何导出Excel文件。最常用的Java库是Apache POI,它可以处理Microsoft Office格式,包括Excel(XLS和XLSX)文件。 1. 使用Apache POI创建XLS(老版Excel)文件: ```java import org.apache.poi....
在Java编程环境中,导出Excel是一项常见的任务,...总结来说,这个程序利用Java和JExcelAPI库实现了从服务器端导出Excel的功能,对于Web应用程序来说,这是一个实用且常见的功能,可以帮助用户方便地下载和分享数据。
1、Java导出动态数据为Excel文件,具体示例可以参考:https://img-blog.csdnimg.cn/1cc86ee5dffa48669e2b97283585fad2.png 2、项目使用SpringBoot,Ali3.0.5版本的easyexcel框架。 3、资源内有具体的使用说明和易...
在Java编程中,导入和导出Excel数据是常见的需求,特别是在数据分析、报表生成或数据交换等场景。本示例将探讨如何使用Java处理Excel文件,主要依赖于Apache POI库和JExcelAPI库。这两个库提供了对Microsoft Excel...
本项目“Java完美导出Excel程序”是利用Java技术实现的一种高效、灵活的数据导出工具,它允许开发者通过输入SQL查询和指定Excel文件名,自动生成包含查询结果的Excel文件。这一功能在数据分析、报表生成以及数据共享...
在Java开发中,处理大量数据导出到Excel文件是一个常见的需求,特别是在数据分析、报表生成或者数据备份等场景。本示例“java-poi-excel-导出20万条记录【源代码】”展示了如何使用Apache POI库来高效地处理大数据量...