`
小咩扛枪
  • 浏览: 27062 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java导出excel至本地(非服务器)

    博客分类:
  • java
阅读更多
思路:将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 poi导出Excel上传实例 可直接使用

    使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用

    java导出jqgrid表格数据为excel

    前端页面点击导出jqgrid表格为excel表格代码,有表格样式设置的代码,可以参考一下,这是我刚开始工作的时候写的,希望可以帮助像我一样的菜鸟。

    java导入导出excel操作(jxl)

    导出excel业务流程: ---------------------------------------------------------- 1、用户点击按钮向服务器发送请求同时将页面数据一同发送到服务器端 2、服务器端接收请求和数据 3、经过servlet对接收到的数据...

    java导出Excel文件

    2、服务器端接收请求和数据 3、经过servlet对接收到的数据进行处理 4、数据正确,创建excel文件,将数据保存到文件中 5、servlet将文件发送到客户端 6、客户端保存文件 ------------------------------------------...

    java导出CSV文件,EXCEL文件(不用指定下载路劲)

    亲测OK,可直接导出excel文件,csv文件;不用指定下载路劲,直接下载到本地,服务器不用生成临时文件。

    关于Java使用EasyExcel导出动态数据为Excel文件SpringBoot代码项目示例

    1、Java导出动态数据为Excel文件,具体示例可以参考:https://img-blog.csdnimg.cn/1cc86ee5dffa48669e2b97283585fad2.png 2、项目使用SpringBoot,Ali3.0.5版本的easyexcel框架。 3、资源内有具体的使用说明和易...

    Java使用POI实现Excel报表的导入和导出

    利用开源组件POI3.0.2,用java语言实现了动态导出Excel文档,并且也实现了Excel文档的导入。有完整的例子,可直接使用。ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat...

    java 浏览器导出csv文件

    导出Excel function listHbaseExcel(url){ var tableName=$("#tableName").val(); if(tableName==null || tableName==""){ parent.layer.msg("请输入表名再进行数据导出", {icon: 5}); return ; } window....

    Java POI根据模板生成Excel(xlsx)文件

    Java POI根据模板生成Excel文件并写入磁盘,资源文件仅为实现的简单测试Demo,并没有进行代码优化,可以直接导入运行,资源文件仅供参考。

    poi导出excel所需jar

    POI导出Excel所需jar包

    excel转pdf(解决导出的pdf和excel格式不一致问题).rar

    解决excel转pdf时excel格式与导出的pdf的格式不一致的问题的相关jar包及相关代码

    POI导入导出EXCEL文件.(struts 1.x and struts2.x).doc

    web中使用POI导入导出EXCEL文件的例子 struts1.x的例子,struts2.x可以参考自己修改 1.action的写法 import java.io.*; import java.sql.*; import java.util.ArrayList; import javax.servlet....

    highcharts客户端导出

    无需使用导出服务器,直接在客户端中导出highcharts所绘的图像,速度相当快

    poi报表导入导出.zip

    利用开源组件POI3.0.2,用java语言实现了动态导出Excel文档,并且也实现了Excel文档的导入。有完整的例子,可直接使用。ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat...

    npoi:在ASP.NET Core 2.0 Razor页面中导入和导出Excel

    在ASP.NET Core 2.0 Razor页面中导入和导出Excel NPOI是一个免费工具,支持xls,xlsx和docx扩展。 该项目是上POI Java项目的.NET版本。 POI是一个开源项目,可以帮助您读取/写入XLS,DOC,PPT文件。 它涵盖了Excel...

    fusioncharts保存到服务器

    Java项目!可更改保存报表的路径!使用fusioncharts 通过javascript 提交报表图片!将图片保存到服务器后可以自己写代码!导出Excel、world等!参考文献http://blog.csdn.net/wangxw8746/article/details/27674471

    java 基于poi的excel操作工具类

    java 基于poi的excel操作工具类,包含导入excel,导出excel,直接存储到服务器,或者返回流

    jacob给现有excel设置密码保护

    java给现有Excel设置密码保护,在服务器上导出Excel文档的时候需要给Excel设置密码保护,防止他人修改内容

    excel+world导出+maven+jetty+zip压缩包下载

    手把手教你搭建maven管理项目,用jetty服务器部署(有PDF详细图解),同时用 SpringMVC 实现了 excel+world导出和zip压缩包下载 技术包涵了:java,freemark,SpringMVC,相关Utils 亲手自作 excel+world导出+...

Global site tag (gtag.js) - Google Analytics