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和Apache POI库来处理Excel文件,这对于开发需要生成报表或数据导出功能的应用非常有用。在实际项目中,你还可以根据需求扩展这个例子,比如添加更多复杂的格式设置、公式...
在Java编程中,导出复杂的Excel模板是一...熟练掌握Apache POI或其他相关库的用法,结合业务需求,能有效提高工作效率并提供高质量的Excel导出功能。在实际开发中,不断优化代码和策略,可以更好地满足性能和功能需求。
java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt
在Java开发中,导出Excel是一项常见的需求,例如在数据报表、数据分析或用户下载功能中。本知识点将详细讲解如何使用Java实现Excel的导出,包括所...希望这个示例能帮助你理解并开始在自己的项目中实现Excel导出功能。
在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...
本资源提供的"java导出excel复合表头简单实例"是针对Java开发者的一个实用教程,特别是对于那些刚开始接触Java Excel导出功能的新手。这个实例将帮助你理解如何在Excel中创建并设置复杂的表头结构,使得数据的呈现...
java通过Excel模板导出各种Excel , 支持所有的动态数据,列表,图片, 好用的请给好评! 解压导入到eclipse就可以运行看到效果,里面有简单的例子 , 有很复杂的模板,通过模板导出数据。
在Java编程中,导出Excel数据是常见的任务,特别是在数据处理和报表生成的场景下。本教程将聚焦于使用jxl库来实现这一功能。jxl是一个流行且强大的Java库,能够读写Microsoft Excel文件。这里我们将介绍如何利用jxl...
在Java编程中,处理Excel数据是一项常见的任务,特别是在数据分析、报表生成或数据交换场景下。jxl库是一个广泛使用的开源库,...通过查看和运行这些代码,你可以更深入地理解如何在Java中导入、导出和修改Excel文件。
在JavaExcel的实践中,当一次性加载大量数据到内存时,确实容易引发`OutOfMemoryError`,这是因为Excel对象模型在内存中的表示占用空间较大。为了解决这个问题,我们需要采用流式处理或者分批处理的策略。在描述中...
Java中的Excel导入导出是开发过程中常见的需求,特别是在数据处理、报表生成以及数据交换时。Apache POI 是一个流行的开源库,它允许Java开发者读写Microsoft Office格式的文件,包括Excel(.xlsx 和 .xls)。本教程...
本篇文章将详细探讨如何使用Freemarker来实现Excel导出功能,并通过实际例子加深理解。 一、Freemarker基础 1. 模板语言:Freemarker是一种基于模板的语言,它允许开发者通过简单的语法(如 `${}` 和 `#if`)来...
在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成的场景下。本文将深入探讨如何使用Java来处理Excel,并特别关注如何将List对象导出为Excel文件。 首先,我们需要一个库...
在Java编程语言中,"导出例子"通常指的是将数据或程序结果输出到文件、数据库或其他存储媒介的过程。这涉及到I/O(输入/输出)操作,是Java开发中不可或缺的一部分。下面我们将深入探讨Java导出数据的相关知识点。 ...
本文将详细介绍如何使用Apache POI库处理Excel数据,以及使用iText库将这些数据导出为PDF格式。Apache POI是Java中处理Microsoft Office格式文件(如Excel)的库,而iText则是用于创建和编辑PDF文档的库。 首先,...
Java程序导出Excel是一项常见的需求,特别是在数据处理和报表生成的场景中。下面将详细介绍如何在Java中实现这个功能,并探讨相关技术点。 首先,Java中导出Excel通常使用Apache POI库,这是一个用于读写Microsoft ...
在Java编程领域,导出Excel是一项常见的任务,尤其在数据处理和报表生成中。这个实例是专门为初学者设计的,帮助他们理解如何使用Java来创建和导出Excel文件。下面我们将详细探讨这个主题。 首先,Java导出Excel的...
在Java编程中,导出Excel文件是一项常见的任务,特别是在数据处理和报告生成的场景下。这里,我们将深入探讨如何使用Java来创建Excel 2003格式的文件,基于提供的标签和描述,我们可以推断使用的是JXL库。JXL是一个...
虽然较旧,但它仍能帮助我们理解基本的Excel导出流程。要使用这个库,你需要将其添加到你的项目类路径中。对于现代的Java项目,这通常意味着将它包含在Maven或Gradle的依赖管理中。 在Java中,导出Excel主要涉及...
为了简化Excel导出过程,还可以利用一些工具类或者框架,例如Spring Boot的`ModelAndView`类配合Thymeleaf模板引擎,可以方便地将Java对象转换为Excel表格。此外,一些在线服务或API也可以帮助快速生成Excel文件,但...