要用到的jar包:
dom4j-1.6.1.jar
poi-3.2-FINAL-20081019.jar
poi-contrib-3.2-FINAL-20081019.jar
poi-scratchpad-3.2-FINAL-20081019.jar
以下是java源代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class ExcelXMLTest {
/**
* @param args
*/
public static void main(String[] args) {
export("D:/code.xls","D:/Area.xml");
}
public static void export(String inFile,String outFile){
HSSFWorkbook book = null;
try {
//读取一个现有的excel文件
book = new HSSFWorkbook(new FileInputStream(inFile));
} catch (FileNotFoundException e) {
System.out.println("===要读取的excel文件不存在===");
e.printStackTrace();
} catch (IOException e) {
System.out.println("===读取excel文件是出错===");
e.printStackTrace();
}
//获取excel文件的第一个工作薄
HSSFSheet sheet = book.getSheetAt(0);
//创建一个XML的文件
Document d = DocumentHelper.createDocument();
//为这个XML文件设置一个根结点,名为:address
Element root = d.addElement("address");
//获取的代码
String code = "";
//代码对应的值
String value = "";
//省级代码,也就是代码的前两位,如北京:11
String proCode = "";
//市级代码,也就是代码的前四位,如北京1100
String cityCode = "";
//创建几个结点,省级结点
Element province = null;
//市级结点
Element city = null;
//乡镇结点
Element country = null;
//循环读取excel文件中的数据,第一行是标题就不读取了
for(int i=1;i<sheet.getLastRowNum();i++) {
HSSFRow row = sheet.getRow(i);
HSSFCell codeCell = row.getCell(0);
HSSFCell valueCell = row.getCell(1);
code = new String((int)codeCell.getNumericCellValue()+"");
if(valueCell.getRichStringCellValue()!=null)
value = valueCell.getRichStringCellValue().toString();
//如果省级代码不等于代码中的前两位就表示这又是另一个省了
if(!proCode.equals(code.substring(0,2))) {
//改变省级代码
proCode = code.substring(0,2);
//在根目录下添加一个province的子结点
province = root.addElement("province");
//为这个结点添加一两个属性:name和value,对应的值两个是value和code
province.addAttribute("name", value);
province.addAttribute("value", code);
//如果市级代码不等于代码的前四位就表示这是另一个市的了
} else if(!cityCode.equals(code.substring(0,4))) {
//改变市级代码
cityCode = code.substring(0,4);
//在省结点下添加相应的市子结点
city = province.addElement("city");
//设置两个属性并赋值
city.addAttribute("name", value);
city.addAttribute("value", code);
} else {
//否则的话就直接在市结点下添加相应的乡镇子结点
country = city.addElement("country");
country.addAttribute("name", value);
country.addAttribute("value", code);
}
}
try {
//格式化XML
OutputFormat format = OutputFormat.createPrettyPrint();
//是否缩进
format.setIndent(true);
//在声明完之后是否进行换行
format.setNewLineAfterDeclaration(false);
//设置字符编码,只是在声明里把encoding的值设置为UTF-8
format.setEncoding("UTF-8");
//进否格式化
format.setTrimText(true);
//进否添加新行
format.setNewlines(true);
XMLWriter writer = new XMLWriter(new FileWriter(outFile),format);
writer.write(d);
//写完之后要进行flush这样才会把数据真正的写到文件中去
writer.flush();
writer.close();
System.out.println("===成功生成XML文件!!!===");
} catch (IOException e) {
System.out.println("===生成XML文件是出错===");
e.printStackTrace();
}
}
}
分享到:
相关推荐
读取Excel数据生成XML文件 包括各种说明书 还要详细使用说明 http://zjava.org.ru/
该程序主要实现了从XMl文件中读取数据,并按照要求格式写进Excel表格里面
QTP的XML结果文件中读取数据,汇总写入EXCEL中
java读取Excel文件中多个sheet,生成xml格式的文件
读取excel文档转为xml格式,winfrom程序,可以选择文件地址,使用的是npoi框架,把excel数据内容转为xml格式,先转为datatable,绑定的到页面,可修改,包含源码
压缩包内有源文件,分别有.net1.1和.net2.0两种,其中Authors.xml为一个模版xml文件,个人需要解析的xml文件要将文件头改为Authors.xml的文件头,即将编码方式改为标准。sqlstring.txt中有针对解析成excel和数据库的...
读取xml、xls 文件中的数据并储存到数据库,从数据库读取数据储存到xml、xls文件中并打包,以及文件的删除等操作
读取路径导出至本地,其中包含excel数据转换
讲诉了c#读取XML类型的数据的方法和案例
这个是使用java语言 poi导入excel到数据库中,同时使用了xml对excel的每个单元格数据进行了非空验证。经测试,导入数据库成功。
EXCEL数据的读取方法,数据解析问题,XML 的JSON格式保存数据,大量节省资源。
我自己写的用C#把excel数据转换成xml文件,但是没有把excel的进程关掉
python读取.txt(.log)文件 、.xml 文件 、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解 1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾的文件) 以下是文件中的内容,文件名为data...
c#利用EPPlus读取excel实例。...简介:Epplus是一个使用Open Office XML(Xlsx)文件格式,能读写Excel 2007/2010文件的开源组件 功效:支持对excel文档的汇入汇出,图表(excel自带的图表基本都可以实现)的列印
NULL 博文链接:https://youchenglin.iteye.com/blog/2101355
C# 读取Excel显示在DataGrid表格中,双击bin目录的Exe后,是以控件台方式运行程序,你只需按回车就可启动主窗体,将直接读取bin目录下的test.xml文件。本例源码主要是让C#初学者参考的,高手应该会对C#操作Excel有...
c#利用EPPlus写入、读取、修改excel实例。 简介:Epplus是一个使用Open Office XML(Xlsx)文件格式,能读写Excel 2007/2010文件的开源组件
个人在unity里制作的一个读取excel表格小工具,导入要读取的excel表格,然后再导入对应的json或者xml模板格式,最后将excel表格的数据根据导入的模板格式生成对应的json或者xml文件。 PS:主要LitJson插件,unity...
从Excel(XML)文件读取数据,批量制作标签工卡等的Photoshop脚本,完整代码,有说明文档,解压直接可用,适用于打印店、企事业单位、网店等需要制作大量工卡、仪器标签、商品标签的朋友,脚本有详细注释,可以根据...