在Microsoft Office中使用ADO.NET2

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

  第二电脑网导读:明白一件事情,那就是不要做无谓的重复。作为程序员,我们都有一种倾向:为要做的每一件事情编写代码。在使用 Microsoft Office 时,重要的是要学会问自己一个简单的问题,“有没有可以利用的内置功能,使我不用编写代码就可以更迅速地达到我的目的?”对于我们试图解决的问题,Microsoft Excel 提供了一个我们可以利用的功能,称为 Web 查询。Web 查询有其局限性,但是在处理 XML Web Se...
  正文:不要做无谓的重复
    在本文开始,我曾提到过 Microsoft office/ target=_blank class=infotextkey>Office 没有提供可以使用 XML 序列化数据集的现成解决方案。但是,Microsoft Excel 确实提供了一个与此非常相似的功能。从创建 Microsoft Office 解决方案时所积累的经验中,您应该明白一件事情,那就是不要做无谓的重复。作为程序员,我们都有一种倾向:为要做的每一件事情编写代码。在使用 Microsoft Office 时,重要的是要学会问自己一个简单的问题,“有没有可以利用的内置功能,使我不用编写代码就可以更迅速地达到我的目的?”对于我们试图解决的问题,Microsoft Excel 提供了一个我们可以利用的功能,称为 Web 查询。Web 查询有其局限性,但是在处理 XML Web Service 的很多情况下都非常有用,并且在我看来,它是经常被忽略的一种重要功能。我们来快速回顾一下 Microsoft Excel Web 查询功能的优点和缺点。
  
    在本文后半部分中,我们将利用可以公开使用的 Web 服务。请花几分钟的时间用您的浏览器运行一下该 XML Web Service。它会为 Fabrikam.com(Fabrikam.com 是建立在 Microsoft Office 之上的示例应用程序;返回对当前打开的订单的查询。您在浏览器中看到的 XML 是序列化数据集,形式类似于以前 SQL Server 罗斯文数据库中的数据集。
  
    让我们在 Microsoft Excel Web 查询中运用这种 Web 服务。要进行此操作,请执行以下步骤:
  
  启动 Microsoft Excel。
  在“数据”菜单上,指向“导入外部数据”并单击“新建 Web 查询”。
  显示“新建 Web 查询”对话框。
  在“地址”列表中,键入 http://services.fabrikam.com/OWSISample/Order.asmx/OpenOrders 并单击“转到”。图 1 显示了您将看到的内容。
  
  
  图 1:预览 Fabrikam OpenOrders XML Web Service 的“新建 Web 查询”对话框。
  
  单击“导入”。
  然后系统会询问您在何处插入 Web 查询数据。在空白工作表上选择任一单元格,然后单击“确定”。
  Web 查询将运行并插入结果,如图 2 所示。
  
  图 2:插入工作表中的 Web 查询结果。
  
    正如您所看到的,我们无需任何代码便可轻松地将 XML Web Service 的结果导入 Excel。我已经多次使用过这种方法,发现它是一种相当可靠的技术。Excel 中的 Web 查询技术出奇地灵活;要了解可用的配置选项,请参见图 3。我比较喜欢的功能是它能够基于某些参数更新单元格。例如,您可以让 Web 查询按照您指定的时间间隔(分钟)或在首次打开工作簿时自我更新。这样可以确保您总能具备最新的信息。
  
  
  图 3:“Web 查询属性”对话框。
  
    但是,Web 查询也有一些缺点。首先,您可能会注意到 Excel 中的列标题不是很明确。Excel 配有内置的 XML 转换器,专门用于导入任意 XML 并将其转换为电子表格。Excel 采用的方法可以通用,因为它没有关于所加载 XML 的结构和用途的任何线索。在我们的例子中,我们所使用的 XML 不是任意的;其格式或架构都是大家所熟悉的。这意味着,我们使用基于通用布局的 Web 查询时,XML 的所有格式和其他元素在 Excel 中对于我们来说都是有用的。
  
    此外,Excel 目前无法处理 XSD 数据类型。因此,当我们运行 Web 查询时,很多数据类型都无法按照我们所希望的方式被转换或处理。例如在图 2 中,您可以注意到数据栏中包含类似 2002-07-19T10:53:36.000000004:00 的数据。XSD 以 ISO 8601 数据格式显示数据。正如您所看到的,Excel 无法识别此数据格式,并将其作为字符串来处理。
  
    最后,对于能够处理 XML 的 Web 查询来说,其最大的缺陷便是仅在 Microsoft Excel 2002 中可用。因此,可以消除这些局限性并可以在任意 Microsoft Office 应用程序中使用的技术将是非常有用的。在我讲述如何通过 vbA 代码做到这一点之前,请采纳我的建议:如果您还不了解 Web 查询,最好先花一点时间来进一步了解它。对于无需编写代码就可以使用 XML Web Service 来说,Web 查询的确很有帮助。有关 Web 查询的详细信息,请参阅 Charles Maxson 的文章“Well-kept Secret: Excel's Web Queries Enable You to Populate Worksheets from Web Sites”。
"在Microsoft Office中使用ADO.NET2"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12645.html


关键字:

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

站内搜索: 高级搜索

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