`

导出Excel简单实现

 
阅读更多

创建一个servlet:代码如下

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	 
       List<User> dataset = new ArrayList<User>(); 
        User u = new User();
        u.setId("aaa");
        u.setRealname("aaaadddd");
        u.setPassword("123456");
        
        User u2 = new User();
        u2.setId("aaa555555555");
        u2.setRealname("aaaaddddf");
        u2.setPassword("123456566");
        dataset.add(u);
        dataset.add(u2);
	    
	    
//      List<Map<String,String>> dataset = new ArrayList<Map<String,String>>();
//	 	Map<String,String> m1 = new HashMap<String, String>();
//    	m1.put("id","aaaa");
//    	m1.put("realname", "aaaadddd");
//    	m1.put("password", "ddddd");
//    	
//    	Map<String,String> m2 = new HashMap<String, String>();
//    	m2.put("id","aaa555555555");
//    	m2.put("realname", "123456566");
//    	m2.put("password", "aaaaddddf");
//    	
//    	userBankCardList.add(m1);
//    	userBankCardList.add(m2);
    	
    	HSSFWorkbook workbook = genHSSFWorkBook(genTableHead(),dataset);  
        
    	
    	ServletOutputStream sos = null;
    	
    	try{
    		response.reset();
    		sos = response.getOutputStream();
    		workbook.write(sos);
    		response.setContentType("application/octet-stream;charset=UTF-8");  
    		response.setHeader("Content-Disposition","attachment; filename="+ URLEncoder.encode("测试导出.xlsx", "utf-8"));  
//     		response.setHeader("Pragma", "public");  
//          response.setHeader("Cache-Control","public");
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		sos.flush();
    		sos.close();
    	}
	}

//生成Excel
//	public  HSSFWorkbook genHSSFWorkBook(Map<String, String> map,List<Map<String,String>> userBankCardList) {
	public  HSSFWorkbook genHSSFWorkBook(Map<String, String> map,List<User> dataset) {
	// 声明一个工作薄  
        HSSFWorkbook workbook = new HSSFWorkbook();  
        // 生成一个表格  - sheet页的名称
        HSSFSheet sheet = workbook.createSheet("用户银行卡导出");  
        // 设置表格默认列宽度为15个字节  
        sheet.setDefaultColumnWidth(15);  
  
        // 产生表格标题行  下标从0开始
        HSSFRow row = sheet.createRow(0);  
        
        List<String> list = Arrays.asList(map.keySet().toArray(new String[map.keySet().size()]));
        
        for (int i = 0; i <list.size(); i++){  
            HSSFCell cell = row.createCell(i);  
            cell.setCellValue(list.get(i));  
        }  
        
        for(int i=0;i<dataset.size();i++){
		    row = sheet.createRow(i+1);  
	        List<String> fileNameList = Arrays.asList(map.values().toArray(new String[map.values().size()]));
	        for (int j = 0; j < fileNameList.size(); j++){  
	            HSSFCell cell = row.createCell(j);  
	            String value = null;
	            try{  
 	                 value = BeanUtils.getProperty(dataset.get(i), fileNameList.get(j));
	                 //value = dataset.get(i).get(fileNameList.get(j));
	            }catch (Exception e){  
	                e.printStackTrace();  
	                value=null;
	                System.out.println("++++++++++++值获取失败字段+++++++++++" + fileNameList.get(j));
	            }
	            cell.setCellValue(value);  
	         }  
        }
        System.out.println("++++++++++++写入成功+++++++++++" + dataset.size());
		return workbook;
	}
   
   //自定义的表头和字段必须与一一对应
   private Map<String, String> genTableHead() {
		Map<String,String> map = new LinkedHashMap<String,String>();     
        map.put("用户ID","id");
        map.put("真实姓名", "realname");
        map.put("身份证号", "password");
		return map;
	}
        //内部类User
      	class User implements Serializable{
		private static final long serialVersionUID = 1L;
		private String id;
		private String realname;
		private String password;
		public String getId() {
			return id;
		}
		public void setId(String id) {
			this.id = id;
		}
		public String getRealname() {
			return realname;
		}
		public void setRealname(String realname) {
			this.realname = realname;
		}
		public String getPassword() {
			return password;
		}
		public void setPassword(String password) {
			this.password = password;
		}
	}
	
}

 

 

 

 

 

使用jar包:pio-3.8-20120326.jar

 

参考地址:

 

*** https://blog.csdn.net/jimmy609/article/details/41038537

 

http://blog.csdn.net/evangel_z/article/details/7332535

http://download.csdn.net/detail/evangel_z/3895051

http://www.open-open.com/lib/view/open1429847388213.html

分享到:
评论

相关推荐

    poi导出根据模板导出excel和简单列表导出excel源码

    总结来说,"poi-excel-handler" 是一个使用 Apache POI 实现的工具,它提供了根据模板导出和简单列表导出 Excel 的功能。通过利用 POI 的 API,它能够有效地处理大量数据,同时保持代码的可读性。在实际项目中,这样...

    excel导出实现代码

    以下是对"Excel导出实现代码"这一主题的详细解释。 一、Apache POI简介 Apache POI是Java领域中的一个流行库,它允许开发者通过编程方式创建、修改和读取Microsoft Office格式的文件。对于Excel文件,POI提供了HSSF...

    ionic 导出excel实现方案

    本篇文章将深入探讨如何在Ionic应用中实现Excel文件的导出功能,特别是使用xlsx库来创建和导出Excel表格。这个实现方案是基于真实的项目代码案例,确保了其实用性和可行性。 首先,我们需要安装必要的依赖库。`xlsx...

    使用Springboot实现excel的导入导出

    导出Excel 准备数据: 首先,你需要有一份员工数据,可以是从数据库中查询得到的,也可以是已有的数据集合。 创建Excel文件: 使用POI库创建一个新的Excel文件。在文件中创建一个工作表,并在第一行创建标题行,包含...

    jquery 导出excel方法

    在实现jQuery导出Excel功能时,必须考虑浏览器的兼容性和跨域限制。对于老版本的IE浏览器,可能需要采用不同的策略。同时,如果数据来源是跨域的API,需要确保服务端支持CORS(跨源资源共享)。 8. **安全性** 在...

    JSP页面导出EXCEL简单方法

    在IT行业中,尤其是在Web开发领域,常常需要将网页上的数据导出为Excel格式,以便用户进行下载和进一步处理。本文将详细介绍如何使用JSP(JavaServer Pages)来实现这一功能,特别是针对页面上的HTML表格数据。 ...

    Delphi DBGrid导出Excel2010

    Delphi DBGrid 导出 Excel 2010 ...使用 Delphi 语言将 DBGrid 中的数据导出到 Excel 2010 中是非常简单的。我们只需要创建 OLE 对象,设置工作簿,设置数据源,导出数据,保存文件,最后释放资源。

    简单的导出excel表格列子

    这个“简单的导出excel表格列子”提供了一个高效且易于实现的解决方案。它表明我们可以通过纯JavaScript或者HTML5的技术来完成这个功能,无需依赖任何外部插件,使得项目更加轻量化。 在Web页面上,通常我们会有一...

    易语言高级表格快速导出EXCEL

    在"易语言高级表格快速导出EXCEL"这个项目中,开发者可能需要实现以下关键技术点: 1. **数据结构与表格对象**:首先,需要在易语言中创建合适的数据结构来存储表格数据,这通常涉及数组或链表等数据类型。同时,...

    java导出excel复合表头简单实例

    本资源提供的"java导出excel复合表头简单实例"是针对Java开发者的一个实用教程,特别是对于那些刚开始接触Java Excel导出功能的新手。这个实例将帮助你理解如何在Excel中创建并设置复杂的表头结构,使得数据的呈现...

    cxGrid带正副标题导出Excel

    在本主题"cxGrid带正副标题导出Excel"中,我们将探讨如何利用cxGrid控件在导出数据到Excel文件时,同时包含主标题(正标题)和副标题(副标题)。 首先,我们需要了解cxGrid的基本结构。cxGrid通常由几个主要部分...

    jsp导出Excel;简单实用!导出Excel;导出Word

    总之,JSP导出Excel和Word是常见的功能需求,通过Apache POI库可以轻松实现。正确设置响应头和使用流处理可以确保文件能被正确下载,同时根据实际需求调整数据处理和样式设置,能够创建符合业务需求的导出文件。

    导入导出Excel方法,很详细

    总结来说,导入导出Excel是数据处理的重要环节,涉及到对Excel文件的操作,包括读取、写入和格式设置。选择合适的库,创建有效的模板,以及使用预先封装好的工具类,都能帮助我们高效地完成这项任务。在实际项目中,...

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...

    C#导出Excel 导出PDF

    首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx`或`.xls`格式存储,C#可以借助Microsoft Office Interop库直接操作Excel对象,但这要求目标机器上安装了Office。另一种更灵活且无需依赖Office的方法是使用...

    Freemarker实现excel导出功能

    在提供的压缩包`freemarker总结-例子`中,可能包含了一个简单的示例项目,展示如何使用Freemarker和POI实现Excel导出。这个例子通常包括以下部分: 1. 一个`.ftl`模板文件,描述了Excel表格的布局。 2. Java代码,...

    导出excel多个sheet.zip

    这个"导出excel多个sheet.zip"压缩包文件可能包含了一个使用Delphi编写的示例或库,用于帮助开发者实现这一功能。下面将详细解释这个过程涉及的知识点。 1. Delphi简介:Delphi是一款集成开发环境(IDE),主要用于...

    POI导出EXCEL经典实现

    为了实现导出Excel的功能,我们需要创建一个处理类,这个类将负责创建Excel工作簿、工作表以及单元格,并填充数据。以下是一个简化的示例: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import ...

    纯前端:luckysheet在线编辑Excel导出,Excel文件导入

    《纯前端实现:Luckysheet在线编辑Excel及文件导入导出详解》 在现代Web应用中,处理Excel数据已经成为一种常见的需求,特别是在数据分析、报表制作等领域。本文将深入探讨一个纯前端解决方案——Luckysheet,它...

    delphi高效率导出数据到excel

    以下是一个简单的示例代码,演示如何使用 DBGridEh 控件来快速导出数据到 Excel 中: ```delphi procedure Tnewform.BitBtn2Click(Sender: TObject); var titles: string; i: integer; ExcelApp: Variant; ...

Global site tag (gtag.js) - Google Analytics