Как изменить данные диаграммы PowerPoint с помощью .NET? - PullRequest
2 голосов
/ 17 мая 2010

У меня есть шаблон PowerPoint, который содержит один слайд, а на этом слайде - диаграмма. Я хотел бы иметь возможность манипулировать данными этой диаграммы с помощью .NET.

Пока у меня есть код, который ...

  1. распаковывает файл Powerpoint.
  2. распаковывает встроенный файл Excel (ppt \ embeddings \ Microsoft_Office_Excel_Worksheet1.xlsx)
  3. Он успешно манипулирует данными в таблице Excel и архивирует их обратно.
  4. Открывает ppt \ charts \ chart1.xml * 1012 и манипулирует им
  5. Powerpoint затем архивируется и доставляется пользователю

Результатом этого является файл PowerPoint, который показывает пустой график. Но когда я нажимаю на график и перехожу к редактированию данных, он обновляет данные и показывает правильный график.

Я считаю, что моя проблема связана с chart1.xml , который я генерирую. Я сравнил свою сгенерированную версию с версией, созданной PowerPoint, и они почти идентичны. Разница лишь в значениях для <c:crossAx/> и <c:axId/>.

Есть также некоторые различия в округлении данных. Но я не чувствую, что это приведет к пустому графику.

Есть ли другой файл, который мне нужно отредактировать? У кого-нибудь есть идеи относительно того, что еще я должен попытаться заставить это работать?

1 Ответ

1 голос
/ 17 мая 2010

Вероятно, это сочетание значения axID и проблем округления. Идентификатор оси, скорее всего, запрашивает целочисленное значение, и вы можете указывать одинарное / двойное. Таким образом, кэшированные данные в chart1.xml не знают, как отображать.

Попробуйте выполнить те же манипуляции, что и вы, но вместо того, чтобы открывать результат в PowerPoint, измените расширение .pptx на .zip, распакуйте, а затем вручную исправьте ошибки округления в соответствии с исходным округлением. Затем архивируйте обратно, измените расширение на .pptx и откройте в PowerPoint. Если это устраняет проблему отображения, вы можете подтвердить, что это проблема округления.

В качестве альтернативы и в том же духе. Откройте получившийся PPTX в PowerPoint, как вы это делали, и после того, как вы щелкнете правой кнопкой мыши по графику и повторно сгидрируете диаграмму, сохраните его под другим именем и сравните его с вашим автоматическим результатом.

...