以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何将XML提取到EXCEL中? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159890) |
-- 作者:wh420 -- 发布时间:2021/1/12 15:27:00 -- 如何将XML提取到EXCEL中? 以下是XML文件内容,如何将XML提取到EXCEL中? <?xml version="1.0" encoding="GB2312"?> <Data INFO="YIKAIFAPIAO"> <YKFP> <Row 发票号码="12345643" 原发票号码="" 税额="99.01" 作废日期="" 发票类型="增值税专用发票" 发票代码="1111111111" 开票日期="2020-06-29" 合计金额="9900.99" 主要商品名称="服务费" 价税合计="10000" 客户名称="客户A"/> <Row 发票号码="12342623" 原发票号码="" 税额="29.89" 作废日期="" 发票类型="增值税专用发票" 发票代码="1111111111" 开票日期="2020-06-23" 合计金额="2989.11" 主要商品名称="*服务费" 价税合计="3019" 客户名称="客户B"/> </YKFP> </Data>
|
-- 作者:有点蓝 -- 发布时间:2021/1/12 15:30:00 -- 参考:http://www.foxtable.com/mobilehelp/topics/0171.htm |
-- 作者:wh420 -- 发布时间:2021/1/12 16:05:00 -- 我看了一下帮助还论坛贴子觉得这个比较好理解,但执行中出错,麻烦老师给看看。没有结果 For Each f As String In FileSys.GetFiles("E:\\已开发票\\新建文件夹") 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 = "发票号码" Then ndr("第一列") = n.innertext End If If n.name = "税额" Then ndr("第二列") = val(n.innertext) End If Next Next Next |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/1/12 16:22:00 -- 太难了,看不懂啊。我的这个XML一条数据都在同一行,怎么提一行(一条)中的不同字段中的内容》? |
-- 作者:有点蓝 -- 发布时间:2021/1/12 16:29:00 -- Output.Show(xo("YKFP")("Row")(0)("@fapiao号码").tostring) Output.Show(xo("YKFP")("Row")(0)("@税额").tostring)
|
-- 作者:wh420 -- 发布时间:2021/1/12 16:50:00 -- 这个对我来说还有些复杂。我想换个思路,如果用“Syscmd.Project.ImportFromXML()”这系统命令来实现导入是没问题的,但执行这个命令的时候会弹出菜单让选择路径并选择表,我想用代码固定路径和表名,然后直接就倒入到FOXTABLE表中?不需要弹出窗口选择如何实现? [此贴子已经被作者于2021/1/12 16:55:41编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/1/12 17:02:00 -- 这个没有办法,内置的功能,改不了 |
-- 作者:wh420 -- 发布时间:2021/1/12 22:07:00 -- Import我看有导入命令,都是针对ACCESS的或dbf的怎么没有针对XML的? |