我有一个相当大的xml文件,我想把它导入一个现有的excelfile,一个特定的工作表中。我自己的代码相当迟钝。我尝试过使用openXml方法,但这会产生不可用的输出
我尝试过的代码(虽然有效,但速度很慢)列在这里。这个XML文件包含大约10000个条目,每个条目都有我需要的22个其他值。如果我运行这段代码,excel需要2到3分钟将所有数据放入工作表中,这是不可接受的。
我也试过用工作簿.openXML-选项,但这会使源文件中的两个不同的xml结构出现问题,使它无法使用,除非我花更多的时间清理该表,但这不是一个真正整洁的解决方案。
XDoc.Load (strPath)
Set inputXML = XDoc.SelectNodes("//")
xmllengte = Int(inputXML.Length)
ReDim listinputXML(xmllengte, 22)
xmlTeller = 0
For Each element In inputXML:
listinputXML(xmlTeller, 0) = element.ChildNodes(0).Text
listinputXML(xmlTeller, 1) = element.ChildNodes(1).Text
listinputXML(xmlTeller, 2) = element.ChildNodes(2).Text
listinputXML(xmlTeller, 3) = element.ChildNodes(3).Text
listinputXML(xmlTeller, 4) = element.ChildNodes(4).Text
listinputXML(xmlTeller, 5) = element.ChildNodes(5).Text
listinputXML(xmlTeller, 6) = element.ChildNodes(6).Text
listinputXML(xmlTeller, 7) = element.ChildNodes(7).Text
listinputXML(xmlTeller, 8) = element.ChildNodes(8).Text
listinputXML(xmlTeller, 9) = element.ChildNodes(9).Text
listinputXML(xmlTeller, 10) = element.ChildNodes(10).Text
listinputXML(xmlTeller, 11) = element.ChildNodes(11).Text
listinputXML(xmlTeller, 12) = element.ChildNodes(12).Text
listinputXML(xmlTeller, 13) = element.ChildNodes(13).Text
listinputXML(xmlTeller, 14) = element.ChildNodes(14).Text
listinputXML(xmlTeller, 15) = element.ChildNodes(15).Text
listinputXML(xmlTeller, 16) = element.ChildNodes(16).Text
listinputXML(xmlTeller, 17) = element.ChildNodes(17).Text
listinputXML(xmlTeller, 18) = element.ChildNodes(18).Text
listinputXML(xmlTeller, 19) = element.ChildNodes(19).Text
listinputXML(xmlTeller, 20) = element.ChildNodes(20).Text
listinputXML(xmlTeller, 21) = element.ChildNodes(21).Text
xmlTeller = xmlTeller + 1
Next element
Sheets("testing").Range("A2", CStr("V" & inputXML.Length)) = listinputXML