`
mmdev
  • 浏览: 12922472 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

java进行xls转xml

 
阅读更多

一般用java语言来做excel表格的解析有两种常用的方法,poi或者jxl,

有关poi的使用可以参考点击打开链接

下面是用jxl解析excel文档,并输出到xml文件中,注释在代码中


package com.breeze.test;

import java.io.File;
import java.io.FileOutputStream;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.XMLOutputter;

public class Excel2xml

{

	public static void main(String[] args)

	{
		Excel2xml e = new Excel2xml();
		e.ret();
	}

	public void ret() {

		jxl.Workbook readwb = null;

		try

		{
			// 构建Workbook对象, 只读Workbook对象

			// 直接从本地文件创建Workbook,将test.xls放在工程根目录下

			readwb = Workbook.getWorkbook(new File("test.xls"));
			// 创建根节点

			Element roots = new Element("root");
			// 根节点添加到文档中;
			Document doc = new Document(roots);
			
			//循环输出每个sheet到一个xml中
			for (int m = 0; m < readwb.getNumberOfSheets(); m++) {
				Sheet readsheet = readwb.getSheet(0);

				// 获取Sheet表中所包含的总列数

				int rsColumns = readsheet.getColumns();

				// 获取Sheet表中所包含的总行数

				int rsRows = readsheet.getRows();

				// 创建sheet根节点
				Element root = new Element("sheet"+m);

				//对每行分别解析
				for (int i = 0; i < rsRows; i++)

				{

					// 创建节点 sub;
					Element elements = new Element("sub");
					//解析每列
					for (int j = 0; j < rsColumns; j++)

					{
						//取出每个单元格
						Cell cell = readsheet.getCell(j, i);
						if (cell.getContents() == "") {
							continue;
						}
						elements.addContent("\n");
						elements.addContent("\t");
						elements.addContent("\t");
						elements.addContent("\t");
						Element element = new Element("cell");
						//设置节点的属性,同时处理回车换行
						if (cell.getContents().contains("\r\n")) {
							element.setAttribute("value", " ");
						} else {
							element.setAttribute("value", cell.getContents());
						}
						elements.addContent(element);
					}
					elements.addContent("\n");
					elements.addContent("\t");
					elements.addContent("\t");
					root.addContent("\n");
					root.addContent("\t");
					root.addContent("\t");
					root.addContent(elements);

				}
				root.addContent("\n");
				root.addContent("\t");
				roots.addContent("\n");
				roots.addContent("\t");
				roots.addContent(root);
			}
			roots.addContent("\n");
			XMLOutputter XMLOut = new XMLOutputter();

			// 输出data.xml 文件;
			XMLOut.output(doc, new FileOutputStream("data.xml"));

		} catch (Exception e) {

			e.printStackTrace();

		} finally {

			readwb.close();

		}
	}
}


这里是jxl的最新包下载http://www.andykhan.com/jexcelapi/download.html

jdom的相关下载可以到这里去http://www.jdom.org/downloads/index.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics