准备工作都做好了,接下来要把配置文件中的内容读入对象中,毕竟我们实际操作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和Apache POI实现Excel导入导出的基本知识。根据实际需求,你可以结合这两个库的功能,灵活地处理各种Excel文件操作。在实际项目中,通常会根据性能、功能需求以及文件兼容性等因素选择适合的库...
为了更好地理解这两个库的用法,你可以查看提供的"Excel导入导出(jxl及Poi)工具类"压缩包中的示例代码。通过阅读和运行这些代码,你可以更深入地了解如何在实际项目中应用jxl和Apache POI。 总的来说,jxl和Apache ...
Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...
在本文中,我们将深入探讨`jxl`库如何帮助开发者实现Excel的导入和导出功能。 首先,我们需要理解`jxl`库的基本结构和核心概念。`jxl`库主要包含以下几个关键类: 1. `Workbook`:这个类代表一个Excel工作簿,相当...
使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。
在Java编程环境中,JXL库是一个非常流行的工具,用于读取和写入Excel文件。它提供了简单易用的API,使得开发者能够方便地处理Excel数据,而无需依赖Microsoft Office套件。本文将深入探讨如何使用JXL进行Excel的导入...
在Java编程中,处理Excel文件是一项常见的任务,尤其在数据导入导出、报表生成或数据分析等场景下。jxl.jar是一个专门为Java设计的库,它允许开发者轻松地读取、写入和修改Excel文件。这个库的功能强大,覆盖了从...
《jxl资源包:高效Excel导入导出的利器》 在IT行业中,处理数据往往是一项繁琐的任务,尤其是在数据量庞大的情况下。此时,高效的数据导入导出工具显得尤为重要。"jxl资源包"正是这样一个专为Java开发者设计的库,...
在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库则为开发者提供了方便的接口来实现Excel文件的导入和导出。`jxl`是一个开源的Java库,它允许用户读取、写入和修改Excel文件,无需依赖Microsoft Excel...
在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...
在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件...通过正确理解和使用POI库,你可以轻松地实现数据的导入导出,提升工作效率。记得在项目中引入正确的jar包,以确保所有功能的正常运行。
在Java编程领域,导出Excel数据是一项常见的任务,特别是在数据处理和报表生成中。`jxl`库是一个广泛使用的开源库,它允许开发者方便地读取和写入Microsoft Excel文件。本文将详细介绍如何使用`jxl`库创建一个导出...
JAVA 中 excel 导入导出通用方法可以应用于各种需要 excel 文件交互的业务场景中,例如报表生成、数据导出等。该方法可以提高项目的开发效率和灵活性。 十、扩展阅读 * jxl 库的使用 * excel 文件的读写操作 * ...
Apache POI与JXL:Excel导入导出的深入解析 在Java编程中,处理Microsoft Excel文件是一项常见的任务,Apache POI和JXL是两个广泛使用的库,分别提供了强大的功能来读取、写入和操作Excel文件。这两个库使得开发者...
在Java编程环境中,我们经常需要处理数据的导入和导出,Excel作为一种常见的数据存储和展示格式,被广泛应用。`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库...
在IT行业中,Excel数据处理是一项常见的任务,尤其是在数据分析、报表制作和信息管理等领域。本示例"EXCEL导入导出demo"聚焦于如何利用Java的一个库——jxl,来实现JSP(Java Server Pages)对Excel文件的导入与导出...
java_Jxl(导入导出Excel) 导入导出Excel的jar包,与大家共同分享,互相学习
总之,"jxl报表导入导出"是一个实用的Java工具,通过jxl库,开发者可以高效地处理Excel文件,实现数据的导入和导出。这个功能对于那些需要与Excel文件交互的项目来说是非常有价值的,特别是数据分析、报表生成和数据...
本示例"jxl导入导出excel完美运行demo"提供了一个完整的实现,使得开发者能够快速理解和应用Excel处理功能。 `jxl`库是Java中广泛使用的第三方库,它支持读取和写入Excel 97-2003格式(.xls)的文件。这个库提供了...