`
xuxin012
  • 浏览: 9101 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JXL制作属于自己的excel导入导出报表工具(三)dom4j和BeanUtils

    博客分类:
  • Java
阅读更多

  准备工作都做好了,接下来要把配置文件中的内容读入对象中,毕竟我们实际操作excel时还是要通过对象的属性来控制输出,xml还是在初始化的时候读取完毕备用.

  说到读xml就不得不提dom4j了.dom4j是一个Java的XML API,用来读写XML文件的.dom4j性能优异、功能强大而且非常简单,很容易上手.

  先来看段实际的代码.

private void ReadXML(String filename)
{
	SAXReader reader=new SAXReader();
	Document document=null;
	try
	{
		URL xmlpath=this.getClass().getClassLoader().getResource(filename);
		document=reader.read(xmlpath);
		Element root=document.getRootElement();
		Element reportElement=null;
		//report
		JMyEntity report=null;
		//设置report数据
		for(Iterator i=root.elementIterator();i.hasNext();)
		{
			reportElement=(Element)i.next();
			if("report".equals(reportElement.getName()))
			{
				report=new Report();
			}
			else if("import".equals(reportElement.getName()))
			{
				report=new Import();
			}
			fillAttribute(reportElement,report);
			fillReportDetail(reportElement,report);
			jmyMap.put(report.getId(), report);
		}
	}
	catch (Exception e) 
	{
		e.printStackTrace();
	}
}

  稍微解释一下,document.getRootElement()是用来获取根结点的方法,在我的程序中获取的就是myreport结点,之后通过root.elementIterator();获取其子元素的迭代器循环,我们可以获得其所有子元素,按照我们的定义,子元素有report和import两种,将它们分别放入不同的对象中.然后调用fillAttribute方法对其属性进行填充,再用fillReportDetail填充其子元素,然后放入我们准备好的hashmap中,用id做为其键,之后我们便可以用id来访问具体的报表设定类,或者导入设定类了.

  下面是fillAttribute的具体实现.

private void fillAttribute(Element parent,Object o)
{
	Iterator i=parent.attributeIterator();
	Attribute a=null;
	try 
	{
		for(;i.hasNext();)
		{
			a=(Attribute)i.next();
			BeanUtils.setProperty(o, a.getName(),a.getValue());
		}
	} 
	catch (Exception e) 
	{
		e.printStackTrace();
	}
}

   在这里我们利用apache的BeanUtils方便的为配置对象赋值,从参数中获取到attributeIterator迭代器,利用属性名来设置配置对象,因此为了这种设定,我们需要保持配置类的属性名和xml配置中的属性名一致,这样我们便省去了大量的set,代码简洁了很多.

  至于fillReportDetail其实也很简单,就是分别为report赋予page、firsthead、dynamic等赋值.用到的方法无非还是BeanUtils以及dom4j的一些方法,那么就简要介绍一下几个用到的方法.

  SAXReader的read(URL url)方法,其实还有一些重载方法不多介绍都是用来读取一个xml文件,需要的参数就是路径,会返回一个Document对象,代表了整个XML.

  Document的getRootElement()方法,得到Root节点返回一个Element对象。熟悉XML的人都知道,一切XML分析都是从Root元素开始的.

  Element的elementIterator()方法,可以获取到当前元素的子元素迭代器,返回Iterator对象,调用其next()方法便可获得子元素Element对象.

  Element的attributeIterator()方法,用获取到当前元素的属性迭代器,返回Iterator对象,调用其next()方法便可获得属性Attribute对象.

  Attribute的getName()方法,返回属性名,getValue()方法返回属性值. 

  其他的方法还有很多,就不多介绍了.

  本次就到这里啦.内容不多,只是入入门,真深入的话,还是有很多可学的东西.下次就要进入正题了,开始探究JXL的奥秘了.  

分享到:
评论

相关推荐

    JXL、POI实现Excel导入导出

    以上就是关于使用JXL和Apache POI实现Excel导入导出的基本知识。根据实际需求,你可以结合这两个库的功能,灵活地处理各种Excel文件操作。在实际项目中,通常会根据性能、功能需求以及文件兼容性等因素选择适合的库...

    Excel导入导出 jxl及Poi 工具类

    为了更好地理解这两个库的用法,你可以查看提供的"Excel导入导出(jxl及Poi)工具类"压缩包中的示例代码。通过阅读和运行这些代码,你可以更深入地了解如何在实际项目中应用jxl和Apache POI。 总的来说,jxl和Apache ...

    java使用jxl进行Excel导入导出

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

    jxl 实现excel导入导出

    在本文中,我们将深入探讨`jxl`库如何帮助开发者实现Excel的导入和导出功能。 首先,我们需要理解`jxl`库的基本结构和核心概念。`jxl`库主要包含以下几个关键类: 1. `Workbook`:这个类代表一个Excel工作簿,相当...

    Jxl实现Excel的导入导出

    使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。

    jxl导入导出excel

    在Java编程环境中,JXL库是一个非常流行的工具,用于读取和写入Excel文件。它提供了简单易用的API,使得开发者能够方便地处理Excel数据,而无需依赖Microsoft Office套件。本文将深入探讨如何使用JXL进行Excel的导入...

    jxl.jar包(java导入导出Excel文件)

    在Java编程中,处理Excel文件是一项常见的任务,尤其在数据导入导出、报表生成或数据分析等场景下。jxl.jar是一个专门为Java设计的库,它允许开发者轻松地读取、写入和修改Excel文件。这个库的功能强大,覆盖了从...

    jxl资源包,用于Excel导入导出

    《jxl资源包:高效Excel导入导出的利器》 在IT行业中,处理数据往往是一项繁琐的任务,尤其是在数据量庞大的情况下。此时,高效的数据导入导出工具显得尤为重要。"jxl资源包"正是这样一个专为Java开发者设计的库,...

    jxl 实现 excel的导入和 导出

    在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库则为开发者提供了方便的接口来实现Excel文件的导入和导出。`jxl`是一个开源的Java库,它允许用户读取、写入和修改Excel文件,无需依赖Microsoft Excel...

    java实现excel导入导出.pdf

    在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件...通过正确理解和使用POI库,你可以轻松地实现数据的导入导出,提升工作效率。记得在项目中引入正确的jar包,以确保所有功能的正常运行。

    jxl导出excel工具类

    在Java编程领域,导出Excel数据是一项常见的任务,特别是在数据处理和报表生成中。`jxl`库是一个广泛使用的开源库,它允许开发者方便地读取和写入Microsoft Excel文件。本文将详细介绍如何使用`jxl`库创建一个导出...

    JAVA中excel导入导出通用方法

    JAVA 中 excel 导入导出通用方法可以应用于各种需要 excel 文件交互的业务场景中,例如报表生成、数据导出等。该方法可以提高项目的开发效率和灵活性。 十、扩展阅读 * jxl 库的使用 * excel 文件的读写操作 * ...

    apache以及jxl对excel的导入导出

    Apache POI与JXL:Excel导入导出的深入解析 在Java编程中,处理Microsoft Excel文件是一项常见的任务,Apache POI和JXL是两个广泛使用的库,分别提供了强大的功能来读取、写入和操作Excel文件。这两个库使得开发者...

    jxl导出excel加水印.zip

    在Java编程环境中,我们经常需要处理数据的导入和导出,Excel作为一种常见的数据存储和展示格式,被广泛应用。`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库...

    EXCEL导入导出demo

    在IT行业中,Excel数据处理是一项常见的任务,尤其是在数据分析、报表制作和信息管理等领域。本示例"EXCEL导入导出demo"聚焦于如何利用Java的一个库——jxl,来实现JSP(Java Server Pages)对Excel文件的导入与导出...

    java_Jxl(导入导出Excel)

    java_Jxl(导入导出Excel) 导入导出Excel的jar包,与大家共同分享,互相学习

    jxl报表导入导出

    总之,"jxl报表导入导出"是一个实用的Java工具,通过jxl库,开发者可以高效地处理Excel文件,实现数据的导入和导出。这个功能对于那些需要与Excel文件交互的项目来说是非常有价值的,特别是数据分析、报表生成和数据...

    jxl导入导出excel完美运行demo

    本示例"jxl导入导出excel完美运行demo"提供了一个完整的实现,使得开发者能够快速理解和应用Excel处理功能。 `jxl`库是Java中广泛使用的第三方库,它支持读取和写入Excel 97-2003格式(.xls)的文件。这个库提供了...

Global site tag (gtag.js) - Google Analytics