`

java excel导出例子

阅读更多
	public ActionForward exportExcel(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		BusPensionStandardInfoForm busPensionStandardInfoForm = (BusPensionStandardInfoForm)form;
		Long stLevel = getLongReturnNull(request, "stLevel");
		BusPensionStandardInfoQueryBean busPensionStandardInfoQueryBean = new BusPensionStandardInfoQueryBean();
		if(busPensionStandardInfoForm != null)
			BeanUtils.copyProperties(busPensionStandardInfoQueryBean, busPensionStandardInfoForm);
		busPensionStandardInfoQueryBean.setUseFlag(Long.valueOf(1));
		busPensionStandardInfoQueryBean.setStLevel(stLevel);
		Page page = PageFactory.getPage(request);
		//导出的数据信息
		List<?> list = busPensionStandardInfoService.queryBusPensionStandardInfo(busPensionStandardInfoQueryBean, page);
		//创建头标题
		String [] arr={"年度","标准"};
		List<String[]> listArr=new ArrayList<String[]>();
		String [] arrStr=new String[2];
		for(int i=0;i<list.size();i++){
			BusPensionStandardInfo busPensionStandardInfo=(BusPensionStandardInfo) list.get(i);
			arrStr[0]=busPensionStandardInfo.getYear();
			arrStr[1]=busPensionStandardInfo.getStandardName();
			listArr.add(arrStr);
		}
		//创建sheet页名称
		String sheetName="中央救助标准";
		String fileName="救助标准";
		createExcel(listArr,arr,sheetName,fileName,response);
		
		return null;
	};
	
	/**
     * 导出Excel
     * @param list:结果集合 样式{[1,2,3],[4,5,6],[7,8.9]}
     * @param arr:标题数组[姓名,年龄,学历]
     * @param sheetName:工作表名称
     * @param fileName 导出文件名
     * @param response:返回相应
     */
    public static void createExcel(List list,String[] arr,String sheetName,String fileName,HttpServletResponse response){
        sheetName = sheetName!=null && !sheetName.equals("")?sheetName:"sheet1";
        WritableWorkbook wook = null;//可写的工作薄对象
        try {
            //wook = Workbook.createWorkbook(new File(filePath));//指定导出的目录和文件名 如:D:\\test.xls
        	//设置response方式,使执行此controller时候自动出现下载页面,而非直接使用excel打开
        	OutputStream os = response.getOutputStream();
        	response.reset();
        	response.setContentType("application/vnd.ms-excel; charset=GBK");
        	response.setHeader("Content-Disposition", new String(("attachment; filename=" + fileName +".xls").getBytes("GBK"), "ISO-8859-1")); 
        	wook = Workbook.createWorkbook(os);
            //设置头部字体格式
            WritableFont font = new WritableFont(WritableFont.TIMES, 14, WritableFont.BOLD, 
                    false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
            //应用字体
            WritableCellFormat wcfh = new WritableCellFormat(font);
            //设置其他样式
            wcfh.setAlignment(Alignment.CENTRE);//水平对齐
            wcfh.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直对齐
            wcfh.setBorder(Border.ALL, BorderLineStyle.THIN);//边框
            wcfh.setBackground(Colour.LIGHT_GREEN);//背景色
            wcfh.setWrap(false);//不自动换行
            
            //设置内容日期格式
            DateFormat df = new DateFormat("yyyy-MM-dd");
            //应用日期格式
            WritableCellFormat wcfc = new WritableCellFormat(df);
            wcfc.setAlignment(Alignment.CENTRE);
            wcfc.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直对齐
            wcfc.setBorder(Border.ALL, BorderLineStyle.THIN);//边框
            wcfc.setWrap(false);//不自动换行
            
            //普通内容设置为文本格式
            WritableCellFormat wcfptc = new WritableCellFormat(NumberFormats.TEXT);
            wcfptc.setAlignment(Alignment.CENTRE);
            wcfptc.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直对齐
            wcfptc.setBorder(Border.ALL, BorderLineStyle.THIN);//边框
            wcfptc.setWrap(false);//不自动换行
 
            //创建工作表
            WritableSheet sheet = wook.createSheet(sheetName, 0);
            SheetSettings setting = sheet.getSettings();
            setting.setVerticalFreeze(1);//冻结窗口头部
 
            int columnIndex = 0;  //列索引
            List<String> methodNameList = new ArrayList<String>();
            if(arr!=null){
                //开始导出表格头部
                for (int i =0;i<arr.length;i++) {
                	sheet.setColumnView(i, 30);
                    // 应用wcfh样式创建单元格
                    sheet.addCell(new Label(columnIndex, 0, arr[i], wcfh));
                    //记录字段的顺序,以便于导出的内容与字段不出现偏移
                    methodNameList.add(arr[i]);
                    columnIndex++;
                }
                if(list!=null && list.size()>0){
                    //导出表格内容
                	int count=1;
                    for (int i = 0,len = list.size(); i < len; i++) {
                    	Object []arr2=(Object[]) list.get(i);
                    	for(int j=0;j<arr2.length;j++){
                    		//sheet.addCell(new Label(j, count, arr2[j]==null?"":arr2[j].toString(), wcfc));
                    		sheet.addCell(new Label(j, count, arr2[j]==null?"":arr2[j].toString(), wcfptc));
                    	}
                    	count++;
                    	/*Map<String, Object> map = (Map<String, Object>) list.get(i);
                        Set<String> set = map.keySet();
                        for (Iterator<String> it = set.iterator();it.hasNext();) {
 
                            for (int j = 0; j < methodNameList.size(); j++) {
                            	String key = it.next();
                        		sheet.addCell(new Label(j, i+1, map.get(key).toString(), wcfc));
                        	 }
                        }*/
                    }
                }
                wook.write();
                wook.close();
                os.close();
                System.out.println("导出Excel成功!");
            }else{
                throw new Exception("传入参数不合法");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally{
            try {
                if(wook!=null){
                    wook.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }

 

分享到:
评论

相关推荐

    java excel 导出例子

    通过这个例子,你可以了解到如何使用Java和Apache POI库来处理Excel文件,这对于开发需要生成报表或数据导出功能的应用非常有用。在实际项目中,你还可以根据需求扩展这个例子,比如添加更多复杂的格式设置、公式...

    java复杂模板excel导出例子

    在Java编程中,导出复杂的Excel模板是一...熟练掌握Apache POI或其他相关库的用法,结合业务需求,能有效提高工作效率并提供高质量的Excel导出功能。在实际开发中,不断优化代码和策略,可以更好地满足性能和功能需求。

    java 导出excel例子,使用poi

    java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt

    java导出excel的jar包及例子代码

    在Java开发中,导出Excel是一项常见的需求,例如在数据报表、数据分析或用户下载功能中。本知识点将详细讲解如何使用Java实现Excel的导出,包括所...希望这个示例能帮助你理解并开始在自己的项目中实现Excel导出功能。

    java导出图片到excel

    在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...

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

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

    java通过Excel模板导出各种Excel

    java通过Excel模板导出各种Excel , 支持所有的动态数据,列表,图片, 好用的请给好评! 解压导入到eclipse就可以运行看到效果,里面有简单的例子 , 有很复杂的模板,通过模板导出数据。

    java 导出excel(方法二)

    在Java编程中,导出Excel数据是常见的任务,特别是在数据处理和报表生成的场景下。本教程将聚焦于使用jxl库来实现这一功能。jxl是一个流行且强大的Java库,能够读写Microsoft Excel文件。这里我们将介绍如何利用jxl...

    Java导入导出Excel代码

    在Java编程中,处理Excel数据是一项常见的任务,特别是在数据分析、报表生成或数据交换场景下。jxl库是一个广泛使用的开源库,...通过查看和运行这些代码,你可以更深入地理解如何在Java中导入、导出和修改Excel文件。

    java-poi-excel-导出20万条记录【源代码】

    在JavaExcel的实践中,当一次性加载大量数据到内存时,确实容易引发`OutOfMemoryError`,这是因为Excel对象模型在内存中的表示占用空间较大。为了解决这个问题,我们需要采用流式处理或者分批处理的策略。在描述中...

    java-excel导入导出注解版内用教程说明

    Java中的Excel导入导出是开发过程中常见的需求,特别是在数据处理、报表生成以及数据交换时。Apache POI 是一个流行的开源库,它允许Java开发者读写Microsoft Office格式的文件,包括Excel(.xlsx 和 .xls)。本教程...

    Freemarker实现excel导出功能

    本篇文章将详细探讨如何使用Freemarker来实现Excel导出功能,并通过实际例子加深理解。 一、Freemarker基础 1. 模板语言:Freemarker是一种基于模板的语言,它允许开发者通过简单的语法(如 `${}` 和 `#if`)来...

    java 处理Excel 带 List

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成的场景下。本文将深入探讨如何使用Java来处理Excel,并特别关注如何将List对象导出为Excel文件。 首先,我们需要一个库...

    java导出例子

    在Java编程语言中,"导出例子"通常指的是将数据或程序结果输出到文件、数据库或其他存储媒介的过程。这涉及到I/O(输入/输出)操作,是Java开发中不可或缺的一部分。下面我们将深入探讨Java导出数据的相关知识点。 ...

    java Excel文件转PDF文件

    本文将详细介绍如何使用Apache POI库处理Excel数据,以及使用iText库将这些数据导出为PDF格式。Apache POI是Java中处理Microsoft Office格式文件(如Excel)的库,而iText则是用于创建和编辑PDF文档的库。 首先,...

    java程序导出Excel

    Java程序导出Excel是一项常见的需求,特别是在数据处理和报表生成的场景中。下面将详细介绍如何在Java中实现这个功能,并探讨相关技术点。 首先,Java中导出Excel通常使用Apache POI库,这是一个用于读写Microsoft ...

    java导出excel

    在Java编程领域,导出Excel是一项常见的任务,尤其在数据处理和报表生成中。这个实例是专门为初学者设计的,帮助他们理解如何使用Java来创建和导出Excel文件。下面我们将详细探讨这个主题。 首先,Java导出Excel的...

    java 导出 excel 2003,有例子

    在Java编程中,导出Excel文件是一项常见的任务,特别是在数据处理和报告生成的场景下。这里,我们将深入探讨如何使用Java来创建Excel 2003格式的文件,基于提供的标签和描述,我们可以推断使用的是JXL库。JXL是一个...

    java导出excel实例

    虽然较旧,但它仍能帮助我们理解基本的Excel导出流程。要使用这个库,你需要将其添加到你的项目类路径中。对于现代的Java项目,这通常意味着将它包含在Maven或Gradle的依赖管理中。 在Java中,导出Excel主要涉及...

    java 导出 excel

    为了简化Excel导出过程,还可以利用一些工具类或者框架,例如Spring Boot的`ModelAndView`类配合Thymeleaf模板引擎,可以方便地将Java对象转换为Excel表格。此外,一些在线服务或API也可以帮助快速生成Excel文件,但...

Global site tag (gtag.js) - Google Analytics