用循环,将xml读入生成recordset,在性能上有所缺陷。
先考虑将xml直接读入recordset:
<portfolio>
<stock>
<symbol>MSFT</symbol>
<price>$66.00</price>
<companyname>Microsoft Corporation</companyname>
<website>http://www.microsoft.com</website>
</stock>
<stock>
<symbol>AAPL</symbol>
<price>$110.00</price>
<companyname>Apple Computer, Inc.</companyname>
<website>http://www.apple.com</website>
</stock>
<stock>
<symbol>DELL</symbol>
<price>$50.00</price>
<companyname>Dell Corporation</companyname>
<website>http://www.dell.com</website>
</stock>
<stock>
<symbol>INTC</symbol>
<price>$136.00</price>
<companyname>Intel Corporation</companyname>
<website>http://www.intel.com</website>
</stock>
</portfolio>
Dim rstxml As New ADODB.Recordset
rstxml.ActiveConnection = "Provider=MSDAOSP; Data Source=MSXML2.DSOControl.2.6;"
rstxml.Open "xml路径"
Sheet1.Range("A1").CopyFromRecordset rstxml
但是这段代码产生的结果,在结果集后 多出了一列(前面列字符串的连接),求解答。
另问:rstxml.Open "xml路径" xml路径这里 考虑性能的话 应该用什么呢?比如说较大文件?
好像有stream这个变量类型?求例子。
先考虑将xml直接读入recordset:
<portfolio>
<stock>
<symbol>MSFT</symbol>
<price>$66.00</price>
<companyname>Microsoft Corporation</companyname>
<website>http://www.microsoft.com</website>
</stock>
<stock>
<symbol>AAPL</symbol>
<price>$110.00</price>
<companyname>Apple Computer, Inc.</companyname>
<website>http://www.apple.com</website>
</stock>
<stock>
<symbol>DELL</symbol>
<price>$50.00</price>
<companyname>Dell Corporation</companyname>
<website>http://www.dell.com</website>
</stock>
<stock>
<symbol>INTC</symbol>
<price>$136.00</price>
<companyname>Intel Corporation</companyname>
<website>http://www.intel.com</website>
</stock>
</portfolio>
Dim rstxml As New ADODB.Recordset
rstxml.ActiveConnection = "Provider=MSDAOSP; Data Source=MSXML2.DSOControl.2.6;"
rstxml.Open "xml路径"
Sheet1.Range("A1").CopyFromRecordset rstxml
但是这段代码产生的结果,在结果集后 多出了一列(前面列字符串的连接),求解答。
另问:rstxml.Open "xml路径" xml路径这里 考虑性能的话 应该用什么呢?比如说较大文件?
好像有stream这个变量类型?求例子。
http://support.microsoft.com/kb/263247
记得.net里面很简单的……
不知道有人尝试过这两个例子吗?
recordset为什么State值是0?
Sheet1.Range("A1").CopyFromRecordset oRs, , oRs.Fields.Count - 1