Обновить сводную таблицу с помощью XML из ответа ServerXMLHTTP - PullRequest
1 голос
/ 18 декабря 2009

Я успешно отправил Ajax-запрос в веб-службу, используя Microsoft Excel.

Моя цель состоит в том, чтобы иметь кнопку, которую пользователь может нажать, чтобы вывести информацию и обновить сводные таблицы и диаграммы в документе Excel для отображения обновленной информации.

Могу ли я установить в сводной таблице источник XML? Если нет, то как насчет стола?

В противном случае, я думаю, мне нужно, чтобы макрос очистил существующую информацию, заполнил и затем обновил сводные таблицы?

Может ли сводная таблица, которая существует только в макросе? В настоящее время я получаю информацию с помощью функции «Sub».

У меня в данный момент есть информация, загруженная как DomDocument.

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

1 Ответ

0 голосов
/ 21 января 2010

Есть два способа сделать это.

Первый способ - использование карт XML. Во-первых, используя опцию XML Source из меню Developer (в Excel 2003, я думаю, это было в меню Data), вы создаете карту из XML-схемы или файла примера XML-данных в лист. Как только это будет сделано, вы можете импортировать данные XML, которые будут отображаться в отображенном диапазоне. Затем вы должны назначить сопоставляемому диапазону имя и, наконец, построить сводную таблицу на именованном диапазоне. Обновление сопоставленных диапазонов XML из службы HTTP относительно легко в сценариях VBA. Ваш именованный диапазон автоматически адаптируется к новому размеру данных. Очевидным ограничением здесь является размер рабочей таблицы для хранения ваших данных, которая часто была проблемой до Excel 2007 с всего 65 000 строк.

Другой способ, о котором я только смутно вспоминаю, заключался в установке свойства Recordset объекта PivotCache. Набор записей обычно поступает из запроса к базе данных, но его можно создать из XML, при условии, что это XML MS Persist. Это усложнит задачу, потому что вам придется преобразовать XML в MS Persist XML. Вот скрипт, который конвертирует Recordset в MS Persist XML и обратно: http://www.freevbcode.com/ShowCode.Asp?ID=1204

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...