`

Excel转换成Xml

 
阅读更多
JAR包:
JDK1.6和jxl.jar

需求:
EXCEL文件类似如下:
见:附件

XML文件类似如下:
见:附件


Model类(以防参数太多而建立的类)
package com.island;

public class User {

    /**
     * UID
     */
    private static final long serialVersionUID = 346821702783141852L;
    
    private String username;
    private String usermail;
    private String password;
    
    
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUsermail() {
		return usermail;
	}
	public void setUsermail(String usermail) {
		this.usermail = usermail;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
    
    

}



Title借口(关键词借口)
package com.island;
public interface UserKeys {
    
	public static final String USER_NAME_VALUE = "用户名";
	public static final String USER_EMAIL_VALUE = "用户邮箱";
	public static final String USER_PASSWORD_VALUE = "用户密码";
	
}


Excel2Xml类
package com.island;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class Excel2XML {
    
    /**
     * The output stream to write to
     */
    private OutputStream out;

    /** 
     * The encoding to write
     */
    private String encoding;
    
    public Excel2XML(OutputStream out, String enc) {
        encoding = enc;
        this.out = out;
        if (encoding == null || !encoding.equals("UnicodeBig"))
        {
          encoding = "UTF8";
        }
    }
    /**
     * 读取EXCEL文件,存到formBean放到ArrayList返回
     *      
     */
    public static ArrayList readExcel(File file) {
        ArrayList userList = new ArrayList();
        Workbook wb = null;
        try {
            wb = Workbook.getWorkbook(file);
        } catch (BiffException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if(wb == null) 
            return null;
        Sheet[] sheets = wb.getSheets();
        
        if(sheets != null && sheets.length > 0) {
            for(int i=0; i<sheets.length; i++) {
                int rowNum = sheets[i].getRows();
                int columnNum = sheets[i].getColumns();
                Cell[] title = null;
                for(int row=0; row<rowNum; row ++) {
                    if(row == 0){
                        title = sheets[i].getRow(row);    
                    } else {
                        Cell[] rowContent = sheets[i].getRow(row);
                        User user = paserUnit(title,rowContent);
                        userList.add(user);
                    }
                }
                
                
            }
        }
        wb.close();
        return userList;
    }
    
    /**
     * 根据给的信息生产XML
     * @param filmList
     * @throws IOException
     */
    public void generateXML(ArrayList userList) throws IOException {
        
        try {
            OutputStreamWriter osw = new OutputStreamWriter(out, encoding);
            BufferedWriter bw = new BufferedWriter(osw);
            bw.write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
            bw.newLine();
            Iterator it= userList.iterator();
            bw.write("<user_info_root>");
            bw.newLine();
            while(it.hasNext()) {
                User user = (User) it.next();
                bw.write("<user_info>");
                bw.newLine();
                bw.write("<name>"+user.getUsername()+"</name>");
                bw.newLine();
                bw.write("<email>"+user.getUsermail()+"</email>");
                bw.newLine();
                bw.write("<password>"+user.getPassword()+"</email>");
                bw.newLine();
                bw.write("</user_info>");
                bw.newLine();
            }
            bw.write("</user_info_root>");
            bw.flush();
            bw.close();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

    /**
     * 按EXCEL的表头,解析EXCEL的每一行数据,放入formBean
     * @param title
     * @param rowContent
     * @return
     */
    public static User paserUnit(Cell[] title, Cell[] rowContent) {
        User userContent = new User();
        for(int i=0; i<rowContent.length; i++) {
            Cell filmCell = title[i];
            String user = filmCell.getContents();
            System.out.println(user);
            Cell filmContentCell = rowContent[i];
            String userValue = filmContentCell.getContents();
            
            if(UserKeys.USER_NAME_VALUE.equals(user)) {
            	userContent.setUsername(userValue);
            }
            if(UserKeys.USER_EMAIL_VALUE.equals(user)) {
            	userContent.setUsermail(userValue);
            }
            if(UserKeys.USER_PASSWORD_VALUE.equals(user)) {
            	userContent.setPassword(userValue);
            }
        }
       
        return userContent;
    }
    /**
     * 整型验证
     * @param str
     * @return
     */
    public static  Integer validateInteger(String str){
        Integer result = null;
        if(str == null || str.equals("")) {
            result = new Integer("0");
            return result;
        } else {
            return new Integer(str);
        }
        
    }
    /**
     * 字符编码转换
     * @param str
     * @return
     */
    public static String StringConersion(String str) {
        String result = null;
        byte context[];
        try {
            context = str.getBytes("UTF-8");
            result =   new  String(context, "gb2312" );
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
       return result;
    }
    /**
     * EXCEL到XML的生成
     * @param excelFile
     * @param xmlFile
     */
    public static void Exce2XMLComplete(File excelFile, File xmlFile) {
        ArrayList list = Excel2XML.readExcel(excelFile);
        FileOutputStream fos;
        try {
            fos = new FileOutputStream(xmlFile);
            Excel2XML obj = new Excel2XML(fos,"utf-8");
            try {
                obj.generateXML(list);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        File file = new File("D:\\user.xls");
        ArrayList list = Excel2XML.readExcel(file);
        FileOutputStream fos;
        try {
            fos = new FileOutputStream(new File("D:\\user.xml"));
            Excel2XML obj = new Excel2XML(fos,"utf-8");
            try {
                obj.generateXML(list);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        

    }
}




最后实现附件中的样式,简单的用这个方法可能有点复杂,建议这样做,对以后改进有很好的帮助!
  • 大小: 10.5 KB
  • 大小: 22.8 KB
分享到:
评论

相关推荐

    excel转换成xml工具

    Excel转换成XML工具是一种实用程序,它允许用户将数据从Microsoft Excel格式轻松转换为XML(Extensible Markup Language)格式。这种转换对于数据交换、存储和跨不同系统共享信息特别有用,因为XML是一种开放标准,...

    java Excel转化xml

    通过上述步骤,我们能够将 Excel 文件中的数据转换成结构化的 XML 文件。这种方法不仅适用于简单的数据转换场景,也能够通过进一步的扩展和支持处理复杂的 Excel 文件。此外,还可以根据具体需求调整 XML 输出结构...

    Python实现将Excel转换成xml的方法示例

    本文实例讲述了Python实现将Excel转换成xml的方法。分享给大家供大家参考,具体如下: 最近写了个小工具 用于excel转成xml 直接贴代码吧: #coding=utf-8 import xlrd import datetime import time import sys ...

    神级testlink-导出的xml用例转Excel或Excel转xml上传到testlink

    在测试过程中,有时我们需要将数据在不同的格式之间转换,例如从TestLink导出的XML文件转换为Excel,或者反过来,从Excel转换为XML再上传到TestLink。这个过程对于测试团队来说尤其重要,因为Excel通常更便于编辑和...

    excel转换为xml小工具

    这时,“Excel转换为XML小工具”应运而生,它提供了一种便捷的方式,将Excel表格中的数据轻松转换为XML格式。 该工具的核心功能是将Excel的第一列作为XML的元素名称,第二列则对应元素的值,从而自动生成XML样例。...

    EXCEL文件转XML文件

    - **手动转换**:可以使用Excel自身的“另存为”功能,选择XML数据或XML表格格式,将Excel文件导出为XML。 - **编程转换**:利用编程语言如Python(pandas库的to_xml函数)、VBA(Visual Basic for Applications)...

    excel转化为xml

    因此,将Excel转换成XML的需求日益增多。本文主要介绍如何利用C#语言实现这一转换过程。 #### 一、Excel到XML的基本概念 **1. Excel:** 是一种流行的电子表格程序,由Microsoft开发,主要用于数据处理和分析。它...

    用VBA将excel格式转换成xml输出

    标题“用VBA将excel格式转换成xml输出”所涉及的知识点主要集中在Excel与XML之间的数据转换,这是一项常见的任务,特别是在需要将电子表格数据整合到其他系统或平台时。VBA(Visual Basic for Applications)是实现...

    Unity/C#的Excel转二进制和XML工具

    将Excel转换为二进制或XML格式的好处在于,这两种格式的数据存储效率高,读取速度快,适合游戏运行时的数据需求。二进制格式占用空间小,加载速度快,但可读性较差;XML则是一种结构化文本格式,易于理解和解析,但...

    Excel和String.xml 互相转换工具

    1. 导入`String.xml`:将应用中的`String.xml`文件导入工具,工具会解析XML结构并将其转换成Excel表格。 2. 编辑和翻译:在Excel中进行修改,添加新的行或列以适应新的字符串或语言。 3. 导出回XML:完成编辑后,...

    excel转xml-适配TestLink

    然而,TestLink默认支持XML格式的数据导入,因此,我们需要将Excel转换成XML才能利用TestLink的全部功能。 XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它的结构清晰,易于解析,...

    String.xml Excel 相互转换工具

    1. **XML到Excel转换**:将`String.xml`文件解析成Excel表格,这样翻译人员可以在熟悉的表格环境中进行工作。每个字符串资源的ID、值和注释都可以清晰地显示在Excel的不同列中,便于理解和编辑。 2. **Excel到XML...

    android 读取Excel文件转成xml文件

    将Excel数据转化为XML时,可以考虑创建一个新的XML文件,如res/values/data.xml,用于存储从Excel读取的结构化数据。 6. **数据转换逻辑**: - 读取Excel文件后,遍历每一行和每一列,根据需要将数据封装成相应的...

    excel转换为xml winform工具

    标题中的“Excel转换为XML WinForm工具”是指一个基于Windows Forms(WinForm)的应用程序,设计用于将Microsoft Excel文件(.xlsx或.xls)转换成XML(Extensible Markup Language)格式。这种工具通常由开发者创建...

    使用python将xml转化为Excel

    使用python将xml转化为Excel 由于生成excel,所以没必要让用户选择xml文件,默认对指定文件夹下的所有的XML文件进行转换,并把转换得到的Excel放在指定文件夹。 运行时可以双击.py文件(看不到具体log); 或者按住...

    Excel文件转成XML

    在IT行业中,数据交换和存储经常需要不同的格式之间进行转换,比如从常见的表格形式Excel转换为结构化的XML(Extensible Markup Language)。标题“Excel文件转成XML”涉及到的知识点主要集中在如何利用编程语言如...

    vba Excel转化为xml(格式化输出xml)

    将Excel表格中的信息按一定规则(如关键字分组)输出为xml文件,一般情况下生成的xml文件用文本形式代开不会有缩进与换行,本工具解决了此问题。本工具中生成的RemotePhonebook.xml是根据department分组,同一...

    TestLink导出XML用例转换为Excel工具

    功能介绍:TestLink用例默认只支持导出为XML,此工具支持把XML转换为Excel文件,可转一层目录的测试用例,也可转两层目录的测试用例集。 此工具为TkInter实现的可视化转换工具,可显示转换的每个用例名,统计每次...

    android String.xml Excel 相互转换工具

    这时,就需要借助一些工具进行`String.xml`与Excel之间的转换,以提高效率和准确性。 `String.xml`是Android资源文件夹下的一个XML文件,用于存放应用中的所有字符串资源。每个字符串都有一个唯一的ID,开发者可以...

Global site tag (gtag.js) - Google Analytics