一个excel中有多个sheet表,这些表存在父子关系,如何将这些数据整理成XML文件?

cococenstar 2014-07-31 08:09:19
举个例子:
一个Excel表中有 CLASS(sheet1)、PT(sheet2)、QT(sheet3)、ITEM(sheet4)这四个sheet表。
其中:
CLASS(sheet1):
cl_id name
0 ap

PT(sheet2):
pt_id name cl_id
0 st0 0
1 st1 0
2 st2 0

QT(sheet3):
qt_id name cl_id
0 qt0 0
1 qt1 0
2 qt2 0
ITEM(sheet4):
name pt_id qt_id
itm1 1
itm2 2
item3 1
item4 2
就是根结点是CLASS(sheet1)中的cl_id,PT(sheet2)和QT(sheet3)中的项都是cl_id的子结点,ITM(sheet4)中的项又是PT(sheet2)和QT(sheet3)中项的子结点。
怎么将这四个表的内容转化成xml文件输出。
xml文件内容应为:
<ap>
<st0>
</st0>
<st1>
<itm1/>
</st1>
<st2>
<itm2/>
</st2>
<pt0>
</pt0>
<pt1>
<itm3/>
</pt1>
<pt2>
<itm4/>
</pt2>

</ap>




...全文
640 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
_小黑_ 2014-08-04
  • 打赏
  • 举报
回复
把 读到的excel 转成 dataset dataset 有 自己 的转xml 方法 用 dataset的xml fangfa
Cnwanglin 2014-08-04
  • 打赏
  • 举报
回复
引用 5 楼 cococenstar 的回复:
[quote=引用 2 楼 duanzi_peng 的回复:] 1:使用http://www.cnblogs.com/bicabo/archive/2009/05/05/1449906.html读取excel文件 到DateSet, 2:根据读取的表结构获取列名,作为节点。 3:使用linq to xml 方式 拼接xml节点,保存。 http://blog.csdn.net/duanzi_peng/article/details/24018431
我想有没有个好的算法来实现我的目的,最近想将excel表的内容以父子关系存放成树的形式,再将树转化成xml文件,不知道难不难。有部分代码就好了。[/quote] 可以阿XML正好可以做到
mlqxj35674 2014-08-01
  • 打赏
  • 举报
回复
该问题的关键所在你没搞明白,首先你要定义一个强类型DataSet,其中要定义各表这间的父子关系,主键外键什么的,DataSet定义好了,最后一步只是调用dataset.WriteXml(Stream, WriteSchema) 。
  • 打赏
  • 举报
回复
1:使用http://www.cnblogs.com/bicabo/archive/2009/05/05/1449906.html读取excel文件 到DateSet, 2:根据读取的表结构获取列名,作为节点。 3:使用linq to xml 方式 拼接xml节点,保存。 http://blog.csdn.net/duanzi_peng/article/details/24018431
Cnwanglin 2014-08-01
  • 打赏
  • 举报
回复
没明白什么意思 XML格式定义好了,取值填进去不久可以了?
by_封爱 版主 2014-08-01
  • 打赏
  • 举报
回复
你需要做的 就是先读取多个sheet到不同的datatable中 然后分别循环datatable 构造xml.....既然有条件 就是datatable.select的问题而已, 实在不行就弄一个stringbuller 追加就行了
  • 打赏
  • 举报
回复
引用 5 楼 cococenstar 的回复:
[quote=引用 2 楼 duanzi_peng 的回复:] 1:使用http://www.cnblogs.com/bicabo/archive/2009/05/05/1449906.html读取excel文件 到DateSet, 2:根据读取的表结构获取列名,作为节点。 3:使用linq to xml 方式 拼接xml节点,保存。 http://blog.csdn.net/duanzi_peng/article/details/24018431
我想有没有个好的算法来实现我的目的,最近想将excel表的内容以父子关系存放成树的形式,再将树转化成xml文件,不知道难不难。有部分代码就好了。[/quote] 嗯,研究出来记得分享。
cococenstar 2014-08-01
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
1:使用http://www.cnblogs.com/bicabo/archive/2009/05/05/1449906.html读取excel文件 到DateSet, 2:根据读取的表结构获取列名,作为节点。 3:使用linq to xml 方式 拼接xml节点,保存。 http://blog.csdn.net/duanzi_peng/article/details/24018431
我想有没有个好的算法来实现我的目的,最近想将excel表的内容以父子关系存放成树的形式,再将树转化成xml文件,不知道难不难。有部分代码就好了。
cococenstar 2014-08-01
  • 打赏
  • 举报
回复
引用 1 楼 Cnwanglin 的回复:
没明白什么意思 XML格式定义好了,取值填进去不久可以了?
额,我表达还算清楚吧,就是把一定格式的excel表转化成xml文件。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧