Foxtable(狐表)用户栏目专家坐堂 → 如何将XML提取到EXCEL中?


  共有2955人关注过本帖树形打印复制链接

主题:如何将XML提取到EXCEL中?

帅哥哟,离线,有人找我吗?
wh420
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
如何将XML提取到EXCEL中?  发帖心情 Post By:2021/1/12 15:27:00 [只看该作者]

以下是XML文件内容,如何将XML提取到EXCEL中?
<?xml version="1.0" encoding="GB2312"?>
<Data INFO="YIKAIFAPIAO">
    <YKFP>
        <Row fa piao号码="12345643" 原fa piao号码="" 税额="99.01" 作废日期="" fa piao类型="增值税专用fa piao" fa piao代码="1111111111" 开piao日期="2020-06-29" 合计金额="9900.99" 主要商品名称="服务费" 价税合计="10000" 客户名称="客户A"/>
        <Row fa piao号码="12342623" 原fa piao号码="" 税额="29.89" 作废日期="" fa piao类型="增值税专用fa piao" fa piao代码="1111111111" 开piao日期="2020-06-23" 合计金额="2989.11" 主要商品名称="*服务费" 价税合计="3019" 客户名称="客户B"/>
    </YKFP>
</Data>

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/12 15:30:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/1/12 16:05:00 [只看该作者]


我看了一下帮助还论坛贴子觉得这个比较好理解,但执行中出错,麻烦老师给看看。没有结果

For Each f As String In FileSys.GetFiles("E:\已开fa piao\新建文件夹")
    Dim txt As String = FileSys.ReadAllText(f, Encoding.utf8)
    Dim xmlDoc As New System.XML.XmlDocument
    xmlDoc.Loadxml(txt.Trim)
    Dim ndList  = xmlDoc.GetElementsByTagName("YKFP")
    For Each dr As object In ndlist
        Dim ndr As Row = Tables("表A").addnew
        For Each n As System.XML.XmlNode In dr.childNodes
            output.show(n.Name & " = " & n.InnerText)
            If n.name = "fa piao号码" Then
                ndr("第一列") = n.innertext
            End If
            If n.name = "税额" Then
                ndr("第二列") = val(n.innertext)
            End If
        Next
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/12 16:17:00 [只看该作者]

自行研究:https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.xmldocument?redirectedfrom=MSDN&view=netframework-4.7.2

Dim s As String = "<?xml version=""1.0"" encoding=""GB2312""?><Data INFO=""YIKAIFAPIAO"">    <YKFP>        <Row fapiao号码=""12345643"" 原fapiao号码="""" 税额=""99.01"" 作废日期="""" fapiao类型=""增值税专用fapiao"" fapiao代码=""1111111111"" 开piao日期=""2020-06-29"" 合计金额=""9900.99"" 主要商品名称=""服务费"" 价税合计=""10000"" 客户名称=""客户A""/>        <Row fapiao号码=""12342623"" 原fapiao号码="""" 税额=""29.89"" 作废日期="""" fapiao类型=""增值税专用fapiao"" fapiao代码=""1111111111"" 开piao日期=""2020-06-23"" 合计金额=""2989.11"" 主要商品名称=""*服务费"" 价税合计=""3019"" 客户名称=""客户B""/>    </YKFP></Data>"

Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(s)
Output.Show(xo.Tostring)

Output.Show(xo("YKFP")("Row")(0)("@fapiao号码").tostring)

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/1/12 16:22:00 [只看该作者]

太难了,看不懂啊。我的这个XML一条数据都在同一行,怎么提一行(一条)中的不同字段中的内容》?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/12 16:29:00 [只看该作者]

Output.Show(xo("YKFP")("Row")(0)("@fapiao号码").tostring)
Output.Show(xo("YKFP")("Row")(0)("@税额").tostring)

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/1/12 16:50:00 [只看该作者]

这个对我来说还有些复杂。我想换个思路,如果用“Syscmd.Project.ImportFromXML()”这系统命令来实现导入是没问题的,但执行这个命令的时候会弹出菜单让选择路径并选择表,我想用代码固定路径和表名,然后直接就倒入到FOXTABLE表中?不需要弹出窗口选择如何实现?
[此贴子已经被作者于2021/1/12 16:55:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/12 17:02:00 [只看该作者]

这个没有办法,内置的功能,改不了

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/1/12 22:07:00 [只看该作者]

Import我看有导入命令,都是针对ACCESS的或dbf的怎么没有针对XML的?

 回到顶部