使用宏从excel中使用数据创建xml
这是我的要求- 1) 我有一个xml和相应的xsd文档 2) 这是一个包含多个元素及其层次结构的复杂xml。但只有某些元素/字段是重要的 3) 我想用这些字段创建一个excel,用户可以在其中跨多行输入数据 4) 当用户单击CreateXML时,应该为每一行创建单独的xml 5) 创建的xml应该包含所有元素(用户输入+原始xml中的更多元素) 这只是一个样本-使用宏从excel中使用数据创建xml,xml,excel,Xml,Excel,这是我的要求- 1) 我有一个xml和相应的xsd文档 2) 这是一个包含多个元素及其层次结构的复杂xml。但只有某些元素/字段是重要的 3) 我想用这些字段创建一个excel,用户可以在其中跨多行输入数据 4) 当用户单击CreateXML时,应该为每一行创建单独的xml 5) 创建的xml应该包含所有元素(用户输入+原始xml中的更多元素) 这只是一个样本- <A> <A1/> <A2/> </A> <B> <
<A>
<A1/>
<A2/>
</A>
<B>
<B1>*User entered value*</B1>
<B2>*User entered value*</B2>
</B>
<C>
<C1/>
<C2/>
</C>
*用户输入的值*
*用户输入的值*
我在MSXML2.DOMDocument60上找到了一些参考资料,其中可以使用此API创建xml,还可以通过excel宏根据模式进行验证。但就我而言,有1000个标签。下面是我想到的一些选择-
谢谢你在这方面的帮助。谢谢 如果你有一个基础,你可以使用这样的东西:
Open "e:\0\xml.xml" For Input As #1
Open "e:\0\xml1.xml" For Output As #2
i = 1
While Not EOF(1)
Line Input #1, aa
If InStr(1, aa, "<B1>", vbTextCompare) > 0 Then
aa = Left(aa, 3 + InStr(1, aa, "<B1>", vbTextCompare)) & Cells(i, 1).Value & Right(aa, Len(aa) - InStr(1, aa, "</B1>", vbTextCompare) + 1)
i = i + 1
End If
Print #2, aa
Wend
Close #1
Close #2
打开“e:\0\xml.xml”作为#1输入
打开“e:\0\xml1.xml”,输出为#2
i=1
而不是EOF(1)
线路输入#1,aa
如果InStr(1,aa,“,vbTextCompare)>0,则
aa=左(aa,3+指令(1,aa,“,vbTextCompare))&单元格(i,1)。值和右(aa,Len(aa)-指令(1,aa,“,vbTextCompare)+1)
i=i+1
如果结束
印刷品#2,aa
温德
关闭#1
关闭#2
代码复制原始文件,用A列中的值更改标记B1内的文本。如果你有更多的“片段”,你可以合并不同的文件