`
Colin_Davis
  • 浏览: 24944 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 导出 Excel 封装

    博客分类:
  • Java
 
阅读更多

 

 

 

 

 

    导出列表, 表头及主体内容. 可以对某列进行二次处理

	public void exportExcelA(RoomModel rrm, HttpServletRequest request, HttpServletResponse response) throws Exception {

		List<RoomModel> resultListA = 

		if (resultListA != null && !resultListA.isEmpty()) {

			String fileName = String.format("%#X.excel", System.currentTimeMillis());

			int[] widths = { 15, 30, 20, 20, 40, 10, 15 };
			String[] titles = { "预约人", "预约单位", "预约日期", "审核结果", "活动内容", "参与人数", "批准人" };
			String[] columns = { "name", "dept", "date", "result", "content", "sum", "personName" };

			String[] special = { "result" };
			final String[] status_approved = { "待审核", "审核通过", "未通过", "待取消", "已取消" };
			IStatusValue[] vs = { new IStatusValue() {
				public Object get(Object obj) {
					if (obj != null && Pattern.matches("\\d+", obj.toString())) {
						return status_approved[Integer.parseInt(obj.toString()) % status_approved.length];
					}
					return "";
				}
			} };

			this.export2excel(response, widths, titles, columns, resultListA, request.getCharacterEncoding(), fileName, special, vs);

		}

	}

	interface IStatusValue {
		Object get(Object obj);
	}

	private void export2excel(HttpServletResponse response, int[] widths, String[] titles, String[] columns, List<?> list, String encode, String fn) throws Exception {
		this.export2excel(response, widths, titles, columns, resultListA, request.getCharacterEncoding(), fileName, null, null);
	}

	private void export2excel(HttpServletResponse response, int[] widths, String[] titles, String[] columns, List<?> list, String encode, String fn, String[] special, IStatusValue[] vs) throws Exception {

		OutputStream os = response.getOutputStream();
		response.reset();
		response.setCharacterEncoding(encode);
		response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fn + ".xls", "UTF-8"));
		response.setContentType("application/msexcel");
		WritableWorkbook workbook = Workbook.createWorkbook(os);
		WritableSheet sheet = workbook.createSheet(fn, 0);

		WritableFont font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
		WritableCellFormat ffmt = new WritableCellFormat(font);
		ffmt.setAlignment(Alignment.CENTRE);
		ffmt.setVerticalAlignment(VerticalAlignment.CENTRE);
		ffmt.setWrap(false);

		int line = 0;
		{
			for (int i = 0, l = titles.length; l > i; ++i) {
				Label lbl = new Label(i, line, titles[i], ffmt);
				sheet.addCell(lbl);
				sheet.setColumnView(i, widths[i]);
			}
		}
		{

			for (Object itm : list) {
				line++;

				for (int i = 0, l = columns.length; l > i; ++i) {
					String col = columns[i];
					Field field = itm.getClass().getDeclaredField(col);
					field.setAccessible(true);
					{
						Object obj = field.get(itm);
						if (obj == null) {
							obj = new String("");
						}
						else {
							
							int idx = 0;
							boolean exists = false;
							for (String c : special) {
								if (c.equals(col)) {
									exists = true;
									break;
								}
								idx++;
							}
							if (exists)
								obj = vs[idx].get(obj);
							
						}

						Label lbl = new Label(i, line, obj.toString(), ffmt);
						sheet.addCell(lbl);
					}
					field.setAccessible(false);
				}
			}
		}

		workbook.write();
		workbook.close();
		os.close();
	}

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java导出excel封装成工具类

    java导出封装成工具类

    Java 导出excel工具类(封装,带导出格式和类型转换)

    * 导出excel(利用反射机制) * String[] title = {"订单号","商品名称","商品价格","创建时间"}; * String[] field = {"orderNum","productName","productPrice","createTime"}; * ExportTools.export("sellJoin...

    java根据查询出来的结果导出excel表

    通过条件查询数据库list,根据list去导出多列的excel表格,亲测有效工具类和代码js controller都放在一起

    自定义动态导出excel封装类

    本文将详细讲解如何实现一个自定义的动态导出Excel封装类,以满足各种不同的需求。 首先,我们要理解为什么要自定义封装Excel导出。通常,Java开发中可以使用Apache POI库或JExcelAPI等第三方库来操作Excel。这些库...

    java导出excel复杂表头

    本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...

    java中生成Excel表的封装类

    在Java编程中,生成Excel文件是一项常见的任务,特别是在数据导出、报表生成或者数据分析等领域。Apache POI是一个流行的开源库,专门用于读写Microsoft Office格式的文件,包括Excel(.xlsx 和 .xls)。本篇文章将...

    Java Excel导出代码和jar包

    Java导出Excel封装工具类&支撑jar包。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    java导出excel 在web项目

    Java导出Excel在Web项目中的应用是一个常见的需求,特别是在企业级开发中,为了方便数据的存储、分析和传输,往往需要将数据库中的数据导出为Excel格式。下面将详细介绍这个主题,包括相关技术和实现步骤。 1. **...

    java实现导出excel、word、 pdf

    在Java编程中,导出Excel、Word和PDF是常见的数据呈现和报告生成需求。这些文件格式广泛用于数据存储、报表生成、文档分享等场景。以下将详细介绍如何使用Java实现这三种文件类型的导出。 首先,让我们关注Excel的...

    java实现Excel导出

    在Java编程环境中,导出Excel是一项常见的任务,特别是在数据处理和报表生成的场景下。这里我们将深入探讨如何使用Java来实现Excel的导出功能。 首先,我们需要了解Java中用于处理Excel的主要库,Apache POI是一个...

    java实现自定义excel模板导出excel并可保存客户端和在线打开

    要实现自定义Excel模板导出,我们首先需要创建Excel模板。模板通常包含预设的样式、格式和数据占位符。这可以通过设置单元格的样式(如字体、颜色、边框等)、合并单元格、插入公式以及添加图片等方式来完成。在jxl...

    java使用POI导出 Excel工具类

    java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。

    java导出Excel文件.pdf

    文档标题为“java导出Excel文件.pdf”,描述了从导入依赖、配置文件、前端实现到后端处理的完整流程。涉及到的技术标签包括POI、Vue、Spring Boot以及jqGrid。我们接下来将按照标题和描述的要求,详细解读各个部分的...

    java导出excel文档通用工具类

    总之,"java导出excel文档通用工具类"是Java开发中的一个实用组件,它封装了Excel文件生成的复杂性,使得开发者可以专注于数据处理和业务逻辑,而不是底层的文件操作。通过学习和理解这个工具类的工作原理,我们可以...

    java 导入导出excel文件(工具类)

    在Java编程中,导入和导出Excel文件是一项常见的任务,特别是在数据处理、报表生成和数据分析等领域。本知识点将深入探讨如何使用Java实现这一功能,并提供一个集成工具类的示例。 首先,Java中处理Excel文件通常...

    easyuiPoi导出Excel工具类封装(支持合并单元格)

    在EasyUIPoI中,导出Excel的过程被封装成了一套简单的API。首先,你需要创建一个模板文件,定义好Excel的结构和样式,例如单元格的合并、字体、颜色等。模板文件可以使用Microsoft Excel来创建,保存为`.xlsx`格式,...

    java读取excel及导出excel文件

    在Web应用中导出Excel报表,通常需要将上述过程封装到一个服务方法中,然后在控制器层调用该方法,并返回一个HTTP响应,设置适当的Content-Type(如"application/vnd.openxmlformats-officedocument.spreadsheetml....

    Java Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    在Java编程中,导出Excel文件是常见的数据处理任务,特别是在数据分析、报表生成或数据交换等场景。这里我们将深入探讨如何使用Java实现XML到Excel的转换以及如何创建一个通用的Excel导出工具类。首先,我们需要理解...

    Java导出excel数据poi驱动包

    Java导出Excel数据是开发中常见的需求,尤其是在大数据处理、报表生成或数据分析场景下。Apache POI 是一个流行的开源库,专门用于读取和写入Microsoft Office格式的文件,包括Excel(.xls 和 .xlsx)。在Java中使用...

    Java数据导出到Excel模板

    5. **在Java Web环境中的应用**:在Web环境中,用户可能通过点击按钮触发导出操作,这需要将上述步骤封装到一个服务方法中,然后在前端响应用户请求,生成下载链接或直接触发浏览器下载。 6. **性能优化**:对于大...

Global site tag (gtag.js) - Google Analytics