在Microsoft Office中使用ADO.NET5

时间:2010-01-30 09:36:51  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读: XML 并对其进行分析,然后将其插入 Excel 的当前电子表格中:      Dim rngData As Range   Dim sc As MSSOAPLib30.SoapClient30   Dim xdl As MSXML2.IXMLDOMNodeList   Dim vDataSet As Variant   ' 运行 XML Web Service 并将响应分析到数组中。   Set sc = New ...
  正文: 步骤 3:用数组进行某些操作
    我曾说过步骤 1 很容易;步骤 3 则更加容易。现在我们已将 ADO.NET 数据集分析到数组中,可以利用它在 office/ target=_blank class=infotextkey>Office 中进行任何操作。以下代码是对我们一直在使用的示例的扩展。它从 XML Web Service 中检索 XML 并对其进行分析,然后将其插入 Excel 的当前电子表格中:
  
  Dim rngData As Range
  Dim sc As MSSOAPLib30.SoapClient30
  Dim xdl As MSXML2.IXMLDOMNodeList
  Dim vDataSet As Variant
  ' 运行 XML Web Service 并将响应分析到数组中。
  Set sc = New MSSOAPLib30.SoapClient30
  sc.MSSoapInit "http://services.fabrikam.com/OWSISample/Order.asmx?wsdl"
  Set xdl = sc.OpenOrders
  vDataSet = ParseDataSet(xdl, "Table", True)
  
  ' 将数组作为格式化的网格插入。
  Set rngData = ActiveCell.Resize(UBound(vDataSet, 1) + 1, UBound(vDataSet, 2) + 1)
  rngData = vDataSet
  ActiveCell.AutoFilter
  Selection.AutoFormat Format:=xlRangeAutoFormatList2, Alignment:=True
  
  
    这是 Excel 最吸引我的原因之一。您可以将已为同样大小的数组分配的 Range 对象直接分配到电子表格中。请注意 rngData = vDataSet 一行。就是这么简单!为达到这个目的,我利用 AutoFilter 功能进行了一些改进以使它看起来更好,这样用户便可以深化数据并对数据应用自动格式。图 4 显示了结果。请将此结果与图 2 中 Web 查询所获得的结果进行比较。 
   
   aab1928f637b830368a0d574a63d8d79.jpg
  图 4:通过自定义 vbA 代码插入到 Excel 中的 XML Web Service 数据。
  
    在 word 中达到同样目的会稍微复杂一点,因为 Word 中没有可以将数组插入文档的装置。同时,遍历数组的功能也尚未完善。以下代码可以在 Word 中完成与在 Excel 中执行的相同任务:
  
  Private Sub InsertArrayAsWordTable()
  
  Dim sc As MSSOAPLib30.SoapClient30
  Dim xdl As MSXML2.IXMLDOMNodeList
  Dim vDataSet As Variant
  Dim nRows As Integer
  Dim nRowCount As Integer
  Dim nColumns As Integer
  Dim nColumnCount As Integer
  Dim sRow As String
  
  ' 运行 XML Web Service 并将响应分析到数组中。
  Set sc = New MSSOAPLib30.SoapClient30
  sc.MSSoapInit "http://services.fabrikam.com/OWSISample/Order.asmx?wsdl"
  Set xdl = sc.OpenOrders
  vDataSet = ParseDataSet(xdl, "Table", True)
  
  ' 将数组作为格式化的表格插入。
  nRows = UBound(vDataSet, 1)
  nColumns = UBound(vDataSet, 2)
  
  Selection.Collaphotoshop/ target=_blank class=infotextkey>pse wdCollapseStart
  
  Options.Pagination = False
  For nRowCount = 1 To nRows
  For nColumnCount = 1 To nColumns
  sRow = sRow & vDataSet(nRowCount - 1, nColumnCount - 1)
  If nColumns <> nColumnCount Then
  sRow = sRow & vbTab
  End If
  Next
  sRow = sRow & vbCrLf
  Next
  
  With Selection
  .InsertAfter sRow
  .ConvertToTable Separator:=vbTab
  With .Tables(1)
  .AutoFitBehavior (wdAutoFitContent)
  .AutoFormat Format:=wdTableFormatList2
  End With
  .Collapse wdCollapseStart
  End With
  Options.Pagination = True 《在Microsoft Office中使用ADO.NET5》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12642.html


关键字:

关于《在Microsoft Office中使用ADO.NET5》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td