使用来自ServerXMLHTTP响应的XML刷新数据透视表

时间:2009-12-18 20:44:19

标签: excel-vba vba xmlhttprequest xml excel

我已成功使用Microsoft Excel向Web服务发出类似Ajax的请求。

我的目标是有一个按钮,用户可以单击该按钮来下拉信息并刷新Excel文档中的数据透视表和图表,以反映最新信息。

我可以将数据透视表设置为XML源吗?如果没有,桌子怎么样?

否则,我想我需要让宏清除现有信息,重新填充然后刷新数据透视表?

Pivot表只能存在于宏中吗?我目前正在使用“Sub”功能获取信息。

我目前将信息作为DomDocument加载。

    Dim xmlResult As MSXML2.DOMDocument
    Set xmlResult = New MSXML2.DOMDocument
    xmlResult.LoadXML (results)

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点。

第一种方法是使用XML地图。首先,使用菜单Developer中的选项XML Source(在Excel 2003中,我认为它位于菜单Data下),您可以创建从XML架构或示例XML数据文件到工作表的映射。完成后,您可以导入XML数据,这些数据将显示在映射范围内。然后,您应该为映射范围指定名称,最后在命名范围上构建数据透视表。从HTTP服务刷新映射的XML范围在VBA中相对容易编写脚本。您的命名范围将自动调整为新的数据大小。这里明显的限制是保存数据的工作表大小,这在Excel 2007之前通常只有65,000行。

另一种我只是模糊回忆的方式,它涉及设置PivotCache对象的Recordset属性。 Recordset通常来自数据库查询,但只要它是MS Persist XML,它就可以用XML构建。这会使它变得更加困难,因为您必须将XML转换为MS Persist XML。这是一个将Recordset转换为MS Persist XML并返回的脚本:http://www.freevbcode.com/ShowCode.Asp?ID=1204