我有一个相当大的xml文件,我想将其导入到现有的excelfile中,并导入到特定的工作表中。我自己的代码很慢。我尝试使用openXml方法,但这会产生不可用的输出
这里列出了我尝试过的代码(可以运行,但是速度很慢)。 XML文件包含大约10000个项目,每个项目都有我需要的其他22个值。如果我运行此代码,excel将花费大约2或3分钟的时间将所有数据放入工作表,这实际上是不可接受的。
文件本身的格式有点差,将两个单独的xml列表合并为一个xml文件。可悲的是,我对此无能为力。
我也尝试过使用workbook.openXML-option,但这偶然发现了源文件中的两个不同的xml结构,除非我花更多时间清理该表,否则这对我来说是非常不可用的,但这不是真正整洁的解决方案。
(因为它是公司数据,所以我没有在这里发布XML)。
XDoc.Load (strPath)
Set inputXML = XDoc.SelectNodes("//<nodes_i_need>")
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