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

导入导出Excel工具,支持XML和properties配置(二)

阅读更多

XMLUtil.java

 

package ssh.util;

import java.io.File;
import java.util.Iterator;

import org.apache.struts2.ServletActionContext;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 简单XML工具
 * @author gary
 * @version 1.0
 *
 */
public class XMLUtil {
	
	private static Document document;
	private static Element rootElement;
	
	public XMLUtil(){
		
	}
	
	public XMLUtil(String fileName){
		init(fileName);
	}
	
	/**
	 * 初始化
	 * @param fileName
	 */
	private void init(String fileName){
		SAXReader reader = new SAXReader();
		try {
			document = reader.read(new File(getXMLFilePath(fileName)));
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		rootElement = document.getRootElement();
	}
	
	/**
	 * 获得指定xml文件(不包含扩展名)的路径
	 * @param xmlFileName
	 * @return
	 */
	public String getXMLFilePath(String xmlFileName){
		File directory = new File(ServletActionContext.getServletContext().getRealPath(xmlFileName+".xml").replace("\\", "\\\\"));
		String path = directory.getParent().substring(0, directory.getPath().lastIndexOf(File.separator))+File.separator+"WEB-INF"+File.separator+"classes"+File.separator+xmlFileName+".xml";
		return path;
	}
	
	/**
	 * 获得目标指定属性的值
	 * @param target
	 * @param attribute
	 * @return
	 */
	public String getTargetValue(String target, String attribute){
		if(target == null || target.equals("") || attribute == null || attribute.equals("")){
			System.out.println("参数错误");
		}else if(target.equals(rootElement.getName())){
			for( Iterator<?> j = rootElement.elementIterator(attribute); j.hasNext();){
				Element key = (Element) j.next();
				return key.getStringValue();
			}
		}else{
			for ( Iterator<?> i = rootElement.elementIterator(target); i.hasNext();) {
				Element xmltarget = (Element) i.next();
				for ( Iterator<?> j = xmltarget.elementIterator(attribute); j.hasNext();) {
					Element key = (Element) j.next();
					return key.getStringValue();
				}
			}
		}
		return null;
	}
	
	
	/**
	 * 获得目标属性
	 * @param target
	 * @param attribute
	 * @return
	 */
	public Element getTargetAttribute(String target, String attribute){
		if(target == null || target.equals("") || attribute == null || attribute.equals("")){
			System.out.println("参数错误");
		}else if(target.equals(rootElement.getName())){
			for( Iterator<?> j = rootElement.elementIterator(attribute); j.hasNext();){
				Element key = (Element) j.next();
				return key;
			}
		}else{
			for ( Iterator<?> i = rootElement.elementIterator(target); i.hasNext();) {
				Element xmltarget = (Element) i.next();
				for ( Iterator<?> j = xmltarget.elementIterator(attribute); j.hasNext();) {
					Element key = (Element) j.next();
					return key;
				}
			}
		}
		return null;
	}
	
	/**
	 * 获取跟结点
	 * @param document
	 * @return
	 */
	public static Element getRootNode(Document document){
		if(document == null){
			return null;
		}
		Element root = document.getRootElement();
		return root;
	}
	
}

 JXLReader.java

 

package ssh.util;

import java.io.File;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

/**
 * JXL读取配置文件
 * @author gary
 * @version 1.0
 *
 */
public class JXLReader {
	//true:XML方式
	//false:properties方式
	private static boolean flag = true;
	
	private static Map<String, String> jxl;
	private static XMLUtil xmlUtil;
	
	/**
	 * 构造方法,判断类型,读取数据
	 */
	public JXLReader(){
		judgementMode();
		readData();
	}
	
	/**
	 * 初始化,读入jxl.xml或jxl.properties文件
	 */
	private void readData(){
		if(flag){
			//XML方式
			xmlUtil = new XMLUtil("jxl");
		}else{
			//properties方式
			jxl = new HashMap<String, String>();
			ResourceBundle rb = ResourceBundle.getBundle("jxl");
			Enumeration<String> keys=rb.getKeys();
			while(keys.hasMoreElements()){
				String key = (String)keys.nextElement();
				String value = rb.getString(key);
				jxl.put(key, value);
			}
		}
	}
	
	/**
	 * 判断类型,用XML方式还是properties方式
	 */
	private void judgementMode(){
		File file = new File(new XMLUtil().getXMLFilePath("jxl"));
		if(file.exists()){
//			System.out.println("文件存在,使用xml方式");
		}else{
//			System.out.println("文件不存在,使用properties方式");
			flag = false;
		}
	}
	
	/**
	 * 返回指定目标的属性值
	 * @param target
	 * @param attribute
	 * @return
	 */
	public String getTargetValue(String target, String attribute){
		if(flag){
			return xmlUtil.getTargetValue(target, attribute);
		}else{
			return getTargetValueP(target, attribute);
		}
	}
	
	
	/**
	 * 返回指定目标的属性值,properties方式
	 * @param target
	 * @param attribute
	 * @return
	 */
	private String getTargetValueP(String target, String attribute){
		return (String)jxl.get("jxl." + target + "." + attribute);
	}

}
1
1
分享到:
评论

相关推荐

    C#向DataGridView中导入导出Excel

    以上就是使用C#将数据在DataGridView和Excel之间进行导入导出的基本方法和相关知识点。实际开发中,这些步骤可能需要根据具体项目需求进行调整和优化。提供的两个文本文件"导入Excel.txt"和"SaveExcel.txt"可能包含...

    GridView和Excel的导入导出

    综上所述,GridView和Excel的导入导出涉及到多个技术环节,包括数据读取、格式转换、错误处理等,是.NET开发中常见且实用的功能。正确理解和运用这些技术,可以提高Web应用程序的数据交互能力,提升用户体验。

    springboot整合easypoi实现文件导入导出OSS文件上传和下载。OSS图片导出

    Easypoi是一个强大的Java操作Excel的工具,支持Excel的读写,特别适用于处理大量数据的导入导出。下面我们将详细阐述这一过程。 首先,我们需要在SpringBoot项目中引入Easypoi的相关依赖。Easypoi提供了注解方式来...

    C#导入导出excel表

    ### C#导入导出Excel表知识点详解 #### 一、背景与需求分析 在实际开发过程中,经常需要处理Excel文件的导入与导出工作。利用C#语言的强大功能,可以非常方便地完成这一任务。本篇文章将详细介绍如何使用C#进行...

    经典三种C#导入导出到EXCEL的方法(C#开发人员必备).docx

    在C#编程中,导入和导出Excel文件是常见的数据操作任务,特别是在处理大量数据时。以下是关于在C#中实现这...以上就是C#中导入导出Excel文件的基本方法和相关知识点,这将帮助开发者在处理Excel数据时更加高效和灵活。

    excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    总的来说,这个项目涵盖了Java Web开发、数据库操作和Excel文件处理等多个方面,是学习和实践数据导入导出功能的好例子。通过这个项目,开发者可以深入理解SpringBoot的自动化配置、MyBatis的映射机制,以及Apache ...

    GridView导入导出

    Extended Properties=\"Excel 12.0 Xml;HDR=YES\""; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); OleDbCommand command = new OleDbCommand("SELECT * ...

    SQL Server 导入导出大全

    SQL Server 提供了多种方法来实现数据的导入导出功能,包括但不限于 Excel 文件、文本文件、dBase IV 文件、dBase III 文件、DBF 文件以及 XML 文件等。本文将详细介绍这些方法的具体操作步骤和技术细节。 #### ...

    基于OPENDATASOURCE函数的SQL Server数据库海量数据的快速导入导出方法

    Extended Properties="Excel 12.0 Xml;HDR=YES;"')...[Sheet1$] ``` 在这个例子中,`MyTable`是SQL Server中的目标表,`Sheet1$`是Excel文件中的工作表名称。注意,我们需要指定适当的OLE DB提供者以及正确的Excel...

    ASP.NET-[其他类别]数据导入与数据导出Excel.zip

    总的来说,ASP.NET中数据导入与导出Excel涉及的关键技术包括:使用OLEDB或Open XML读写Excel文件,使用DataTable作为中间数据容器,以及使用DataSet进行数据操作。了解并熟练运用这些技术,能够帮助开发者高效地处理...

    vb批量将excel数据导入access以及批量将access数据库中的数据导入excel源代码

    在VB(Visual Basic)编程环境中,常常需要处理数据导入导出的问题,特别是在处理大量数据时,Excel和Access数据库之间的交互显得尤为重要。标题提到的“vb批量将excel数据导入access以及批量将access数据库中的数据...

    导出excel文档所需要的poi的jar包

    标题提到的"导出excel文档所需要的poi的jar包"就是指这个库的相关组件。 1. **Apache POI 概述** Apache POI 提供了一组API,允许开发者在Java应用程序中创建、修改和显示MS Office格式的文件。它支持老版本的BIFF...

    c#读取Excel文件导入到XML文件中

    private string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\工作表.xls;Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";

    C# 解析Excel工具类和Demo

    在处理Excel文件时,C#提供了一些库和工具类来帮助开发者读取、写入和解析Excel数据。这个“C# 解析Excel工具类和Demo”应该包含了一个使用C#编写的工具类库,以及一个演示如何使用这些工具的Windows Forms应用程序...

    直接使用SQL语句读取Excel表格内容,把表中内容导入数据库中

    - `ExtendedProperties`:设置为“Excel 8.0”(适用于Excel 2003及以前版本),对于Excel 2007及以上版本,应使用“Excel 12.0 Xml”。 - `SheetName$`:表示要读取的工作表名称,必须以美元符号($)$结尾。 ### 2....

    C#实现Excel导入数据到SQL Server数据库

    在IT行业中,数据的导入与导出是常见的操作,特别是在数据分析和系统集成的场景下。本教程将聚焦于使用C#编程语言实现从Excel文件批量导入数据到SQL Server数据库的过程,利用`SqlBulkCopy`类来高效地完成这一任务。...

    EXCEL导入方法

    在IT领域,Excel是一款广泛应用的数据处理工具,尤其在数据分析、报表制作等方面表现出强大的功能。而“Excel导入方法”通常指的是将外部数据引入到Excel工作表中的过程,这在很多业务场景中都十分常见。本篇将详细...

    delphi导出数据至Excel的七种方法及比较

    ### Delphi 导出数据至 Excel 的七种方法及比较 在软件开发过程中,将数据导出到 Excel 文件是一种常见的需求。Delphi 是一款强大的开发工具,提供了多种方式来实现这一功能。本文将详细介绍 Delphi 导出数据至 ...

    基于C__NET的Excel表格数据导入数据库技术研究

    本文重点介绍了一种基于C# .NET的Excel表格数据导入XML数据库的方法,并详细讨论了其实现过程和技术要点。 #### 1. 关键技术分析与实现 ##### 1.1 XML数据库 XML数据库是一种用于存储和管理XML文档的数据管理系统...

    fhir-etl:该项目提供了一组 Kettle 转换(Pentaho 数据集成 ETL 工具),允许您从 FHIR REST 服务器导出导入 FHIR 资源(xml 和 json)到 Excel 数据库,反之亦然

    该项目提供了一组 Kettle 转换(Pentaho 数据集成 ETL 工具),允许将 FHIR 资源(XML、JSON)从 FHIR 服务器导出/导入到 Excel/数据库,反之亦然。 安装 从下载 Kettle 将 fhir-etl/etc/extlib 目录复制到您的 %...

Global site tag (gtag.js) - Google Analytics