Excel中根据XML映射导出XML数据
2015-11-07 18:10
519 查看
如果有这样一组Excel数据,如下图所示:
怎样才能把它变成xml形式的数据呢,其实Excel本身就提供了这样的导入导出功能,只是相关的xml映射需要自己根据不同的需求来写
第一步:选择数据菜单–XML–XML源,如图:
第二步:会在Excel的右侧弹出这样一个框,如图:点击xml映射按钮
会弹出这样一个添加xml映射的弹框,点击添加按钮,选中本地的xml映射文件
,然后点击确定,会看到右侧的弹框已经变成如图这样:
第三步:这个时候我们需要选中root,然后拖拽到A1单元格中,就变成如下这样:
最后一步:导出xml文件,同第一步类似,如图:
附:
当然这个过程里面最重要的其实就是那个映射文件,xsd格式的,如下:
最后导出的xml如下:
不过这并不是我最后想到的结果,理想的xml最好是这样:
这是我把导出的xml数据手动删除一些节点得到的,毕竟这个示例的数据量小,如果是全国所有省市区数据,手动删除冗余的节点肯定不行,耗时耗力,所以希望能通过修改上面的xsd文件来达到如上的效果,目前还没想到怎么改,如若哪位大神知道,还望不吝赐教,在此谢过。
PS:后来由于时间紧迫,还是通过手动更改的方式来达到想到的效果,虽然全国所有省市区数据有将近四千条,不过最后改下来也就四五个小时。。。
怎样才能把它变成xml形式的数据呢,其实Excel本身就提供了这样的导入导出功能,只是相关的xml映射需要自己根据不同的需求来写
第一步:选择数据菜单–XML–XML源,如图:
第二步:会在Excel的右侧弹出这样一个框,如图:点击xml映射按钮
会弹出这样一个添加xml映射的弹框,点击添加按钮,选中本地的xml映射文件
,然后点击确定,会看到右侧的弹框已经变成如图这样:
第三步:这个时候我们需要选中root,然后拖拽到A1单元格中,就变成如下这样:
最后一步:导出xml文件,同第一步类似,如图:
附:
当然这个过程里面最重要的其实就是那个映射文件,xsd格式的,如下:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Root"> <xsd:complexType> <xsd:sequence> <xsd:element minOccurs="0" maxOccurs="unbounded" name="Province"> <xsd:complexType> <xsd:sequence> <xsd:element name="City"> <xsd:complexType> <xsd:sequence> <xsd:element name="District"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="id" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="id" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="id" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
最后导出的xml如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Root> <Province name="北京市" id="20001"> <City name="东城区" id="20005"> <District name="东直门" id="2000512"/> </City> </Province> <Province name="北京市" id="20001"> <City name="东城区" id="20005"> <District name="东直门外" id="2000513"/> </City> </Province> <Province name="北京市" id="20001"> <City name="东城区" id="20005"> <District name="沙滩" id="2000514"/> </City> </Province> <Province name="北京市" id="20001"> <City name="东城区" id="20005"> <District name="东单" id="2000515"/> </City> </Province> <Province name="北京市" id="20001"> <City name="东城区" id="20005"> <District name="东四" id="2000516"/> </City> </Province> <Province name="北京市" id="20001"> <City name="西城区" id="20006"> <District name="西直门" id="2000601"/> </City> </Province> <Province name="北京市" id="20001"> <City name="西城区" id="20006"> <District name="三里河" id="2000602"/> </City> </Province> <Province name="北京市" id="20001"> <City name="西城区" id="20006"> <District name="西城周边" id="2000603"/> </City> </Province> <Province name="北京市" id="20001"> <City name="西城区" id="20006"> <District name="展览路" id="2000604"/> </City> </Province> <Province name="北京市" id="20001"> <City name="朝阳区" id="20009"> <District name="东大桥" id="2000918"/> </City> </Province> <Province name="北京市" id="20001"> <City name="朝阳区" id="20009"> <District name="工体" id="2000919"/> </City> </Province> <Province name="河北省" id="20088"> <City name="石家庄市" id="20091"> <District name="长安区" id="21046"/> </City> </Province> <Province name="河北省" id="20088"> <City name="石家庄市" id="20091"> <District name="桥东区" id="21047"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="新市区" id="22073"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="北市区" id="22074"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="南市区" id="22075"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="满城县" id="22076"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="清苑县" id="22077"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="涞水县" id="22078"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="阜平县" id="22079"/> </City> </Province> <Province name="河北省" id="20088"> <City name="保定市" id="20097"> <District name="徐水县" id="22080"/> </City> </Province> </Root>
不过这并不是我最后想到的结果,理想的xml最好是这样:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Root> <Province name="北京市" id="20001"> <City name="东城区" id="20005"> <District name="东直门" id="2000512"/> <District name="东直门外" id="2000513"/> <District name="沙滩" id="2000514"/> <District name="东单" id="2000515"/> <District name="东四" id="2000516"/> </City> <City name="西城区" id="20006"> <District name="西直门" id="2000601"/> <District name="三里河" id="2000602"/> <District name="西城周边" id="2000603"/> <District name="展览路" id="2000604"/> </City> <City name="朝阳区" id="20009"> <District name="东大桥" id="2000918"/> <District name="工体" id="2000919"/> </City> </Province> <Province name="河北省" id="20088"> <City name="石家庄市" id="20091"> <District name="长安区" id="21046"/> <District name="桥东区" id="21047"/> </City> <City name="保定市" id="20097"> <District name="新市区" id="22073"/> <District name="北市区" id="22074"/> <District name="南市区" id="22075"/> <District name="满城县" id="22076"/> <District name="清苑县" id="22077"/> <District name="涞水县" id="22078"/> <District name="阜平县" id="22079"/> <District name="徐水县" id="22080"/> </City> </Province> </Root>
这是我把导出的xml数据手动删除一些节点得到的,毕竟这个示例的数据量小,如果是全国所有省市区数据,手动删除冗余的节点肯定不行,耗时耗力,所以希望能通过修改上面的xsd文件来达到如上的效果,目前还没想到怎么改,如若哪位大神知道,还望不吝赐教,在此谢过。
PS:后来由于时间紧迫,还是通过手动更改的方式来达到想到的效果,虽然全国所有省市区数据有将近四千条,不过最后改下来也就四五个小时。。。
相关文章推荐
- 使用Python生成Excel格式的图片
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- excel vba 限制工作表的滚动区域代码
- excel vba 高亮显示当前行代码
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- C#针对xml基本操作及保存配置文件应用实例
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- SQL 导入导出Excel数据的语句
- EBS xml publisher中文乱码问题及解决办法
- 文本、Excel、Access数据导入SQL Server2000的方法
- C#中的Linq to Xml详解
- C#导出数据到Excel文件的方法
- C#操作XML文件实例汇总