`
lizhenbin2010
  • 浏览: 101263 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java使用JXL创建Excel文件

    博客分类:
  • J2se
 
阅读更多

       以前写过用jxl读取excel的,但是一直没有写出用jxl生成excel,项目中用来生产报表的也是一个一个的赋值,然后循环的方式去生成,感觉不适用,也不方便。

       这里用Java的反射机制,在生成报表文件的时候动态获取对象的属性,然后生成相应的报表文件。我这里是将要写入excel的数据信息存放在一个List中,然后通过反射机制获取与excel表头标题的的属性,与之匹配,然后写入到文件中。

 

下面就是我的具体的实现方法:

package com.lzb.common;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class JxlCreateExcel {
	
	/**
	 * 单例模式 
	 */
	private static JxlCreateExcel instance = null;
	public JxlCreateExcel() {};
	public static synchronized JxlCreateExcel getInstance() {
		if(instance==null)
			instance = new JxlCreateExcel();
		return instance;
	}
	
	/**
	 * 
	 * 功能描述:将生成报表文件, 单线程5w条没问题
	 *
	 * @author  lizhenbin
	 * <p>创建日期 :May 7, 2012 5:50:58 PM</p>
	 *
	 * @param dataList POJO要打印的数据,在list中
	 * @param obj POJO,属性和dataList的Object属性一致
	 * @param fileUrl 产生Excel文件的目录位置和名字(C:\test.xls)
	 * @param sheetName 表页的名称
	 * @return
	 *
	 * <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
	 */
	public static boolean create(List<Object> dataList, 
			Object obj, String fileUrl, String sheetName) {
		
		WritableWorkbook wwb = null;
		OutputStream outs = null; 
		try {
			Class clazz = obj.getClass();
			// 构建报表POJO,必须设置都是public属性
			/**
			 * 表头属性
			 */
			Field[] fields = clazz.getFields();
			List<Map<Object, Object>> exelist = new ArrayList<Map<Object, Object>>();
			Map<Object, Object> map = new HashMap<Object, Object>();
			for(Field f : fields) {
				Object key = f.getName();
				Object value = f.get(obj);
				map.put(key, value);
			}
			exelist.add(map);
			 
			outs = new FileOutputStream(fileUrl);
	        wwb = Workbook.createWorkbook(outs); 
	        WritableSheet sheet = wwb.createSheet(sheetName, 0);
	        Label label = null;; 
	        
	        List<Object> titles = new ArrayList<Object>();
	        /**
	         * 构建excel表头
	         */
	        for(Iterator<Map<Object, Object>> itor = exelist.iterator(); itor.hasNext();){   
	        	Map<Object, Object> tempMap = itor.next();
	        	Set<Object> keySet = tempMap.keySet();
	        	int cols = 0;
	        	for(Object s : keySet) {
	        		label = new Label(cols, 0, (String) tempMap.get(s));
	        		titles.add(s);
	        		sheet.addCell(label); 
	        		cols++;
	        	} 
	        }
	        
	        /**
	         * 输出的文件内容
	         */
	        
	        int row = 1;
	        for(Object data : dataList) {
	        	int col = 0;
	        	Class dataClazz = data.getClass();
	        	for(Object key : titles) {
	        		Field fd = dataClazz.getField((String) key);
	        		label = new Label(col, row, (String) fd.get(data));
	        		sheet.addCell(label);
	        		col++;
	        	}
	        	row++;
	        	
	        }
	        wwb.write();   // 写入数据 
	        return true;
		} catch (Exception e) { 
			e.printStackTrace();
			return false;
		} finally {
			try {      
		        wwb.close();    // 关闭文件 
		        outs.close();
			} catch (Exception e) {
				e.printStackTrace();
				return false;
			}
		}
	}

}


 闲暇之余,自己写了一下,欢迎交流。

 

分享到:
评论

相关推荐

    java使用jxl打印excel报表文件

    JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel报表。 首先,要使用JXL库,你需要在项目中引入它的依赖。在本例中,`jxl.jar`是JXL库的核心...

    java利用jxl读取excel文件

    `jxl`库是一个广泛使用的第三方库,它允许开发者轻松地读取、写入和修改Excel文件。本篇文章将深入探讨如何利用`jxl.jar`包来实现这一功能。 首先,确保你已经正确地将`jxl.jar`文件添加到你的项目类路径中。这可以...

    java利用jxl生成excel文件

    一旦引入了JXL库,我们就可以开始创建Excel文件了。以下是一个简单的示例,展示了如何生成一个包含数据的Excel文件: ```java import jxl.*; import jxl.write.*; public class ExcelWriter { public static void...

    java使用jxl进行Excel导入导出

    Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...

    java jxl创建Excel

    创建Excel文件的基本步骤如下: 1. **创建工作簿**:JXL提供`Workbook`类来代表Excel工作簿。可以通过`Workbook.createWorkbook()`方法创建一个新的工作簿对象。 ```java Workbook workbook = Workbook....

    Java使用JXL操作Excel

    3. **创建Excel文件** 使用JXL,你可以创建一个新的Excel工作簿,然后向其中添加工作表。每个工作表由多个行和列组成,每个单元格可以存储不同类型的数据。例如: ```java WorkbookSettings ws = new ...

    Java通过POI和JXL给Excel动态添加水印

    通过以上步骤,我们可以实现在Java程序中使用JXL和POI库给Excel文件添加动态水印的功能。这种技术不仅适用于企业内部的文档管理,还可以用于任何需要保护文档版权和安全性的场景。希望这篇教程能够帮助到有类似需求...

    jxl创建下拉列表

    1. **创建Excel文件**:通过`Workbook.createWorkbook`方法创建一个新的Excel文件。 2. **创建工作表**:使用`createSheet`方法为Excel文件添加新的工作表。 3. **定义下拉列表数据源**:通常是一个包含多个选项的`...

    java 创建EXCEL文件,并向EXCEL中写入数据

    本示例将介绍如何使用Java创建Excel文件并写入数据,主要涉及的库是`jxl`,这是一个用于读写Excel文件的开源Java库。 首先,我们需要引入`jxl`库。`jxl.jar`包含了一系列的类和接口,用于处理Excel文件的各种操作。...

    Java利用JXL读写Excel

    JXL库是一个广泛使用的开源库,它允许开发者在Java应用程序中方便地读取和写入Excel文件。本篇将详细介绍如何使用JXL进行Excel的读写操作,并提供一个在MyEclipse环境中可以直接运行的示例代码。 首先,你需要在...

    用jxl下载excel文件

    本文将详细介绍如何使用JXL库结合Java网络编程技术来实现从指定URL下载Excel文件,并将其保存到本地指定目录的功能。此外,我们还将简单介绍如何使用JXL库读取下载的Excel文件的基本数据。 #### 关键技术点解析 ##...

    java中jxl操作excel

    创建Excel文件的基本流程包括: - 使用`Workbook.createWorkbook()`方法创建一个新的可写入的工作簿对象。 - 调用`createSheet()`方法创建一个工作表,并指定工作表的名称和位置。 - 创建`Label`或`Number`对象来...

    jxl操作excel文件

    创建Excel文件 ```java package test; import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class CreateExcel { ...

    利用jxl操作excel文件

    `jxl`库是Java中一个广泛使用的库,它允许开发者方便地读取和写入Excel文件(.xls格式)。本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要...

    jxl JAVA Excel解析

    创建Excel文件主要涉及以下步骤: 1. 创建`WritableWorkbook`对象,指定文件名和工作簿类型(如xls或xlsx)。 2. 在工作簿中添加`WritableSheet`,代表一个工作表。 3. 添加`WritableCell`,包括数值、字符串、日期...

    java poi jxl 操作excel的小例子

    ### 创建Excel文件: - 使用 POI,你可以通过创建 `Workbook` 对象开始创建新的Excel文件。对于 .xls 文件,使用 `HSSFWorkbook`;对于 .xlsx 文件,使用 `XSSFWorkbook`。 - 接着,创建 `Sheet` 对象代表工作表,并...

    jxl导出excel加水印.zip

    `jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `...

    jxl操作excel文件例子

    在Java编程环境中,JXL库是一个非常实用的工具,它允许开发者轻松地读取、写入和修改Excel文件。标题“jxl操作excel文件例子”指的是利用JXL库进行Excel文件处理的实际应用。描述中提到的“通过jxl操作excel,简单...

    Java jxl操作Excel97-2003 eclipse可运行项目实例

    Java jxl库是一个广泛使用的工具,它允许程序员在Java应用程序中读取、写入和修改Microsoft Excel文件。这个"Java jxl操作Excel97-2003 eclipse可运行项目实例"提供了一个实用的示例,帮助开发者了解如何在Eclipse...

    java jxl导出excel文件.txt

    根据提供的文件信息,我们可以总结并深入探讨以下几个与...以上是关于如何使用Java JXL库导出Excel文件的详细介绍,涵盖了从环境准备到具体实现步骤的全过程。希望这些知识点能够帮助您更好地理解和应用Java JXL库。

Global site tag (gtag.js) - Google Analytics