2017-02-22 16 views
1

Приложение My C# использует OpenXML для создания документа MSWord с несколькими таблицами в нем уже. Последняя часть - добавить барчарт. Я не могу найти хороший пример этого случая.Как добавить barchart в созданный документ OpenXML

Благодарим за помощь!

Я создаю документ с нуля. Начиная с:

используя (WordprocessingDocument myDoc = WordprocessingDocument.Create (DocumentStream, WordprocessingDocumentType.Document, Автосохранение: правда))

Затем добавить новые таблицы и абзацы в C# код. Все, что работает, пока я не доберусь до баррикада. Я нашел образец проекта, который вставляет piechart в текстовый документ, но я не понимаю различий между типами диаграмм для его преобразования. Вот PieChart пример проекта, который я нашел:

https://code.msdn.microsoft.com/office/How-to-create-Chart-into-a7d424f6

Спасибо за вашу помощь!

+0

Я не знаком с OpenXML, но похоже, что вы можете начать с поиска в Google, чтобы узнать, что другие пробовали. Пробовали ли вы читать документацию OpenXML (https://msdn.microsoft.com/en-us/library/office/bb448854.aspx)? Если вы не можете быть более конкретными в отношении проблемы, с которой вы сталкиваетесь, вряд ли вам удастся получить большую помощь. – MusikPolice

+1

Что вы пробовали? Вы работаете с созданием документа с нуля или с использованием шаблона для заполнения? Чтобы помочь вам в этом, нам нужно больше узнать о вашей проблеме. –

+0

Добавление диаграммы в документ docx не является тривиальным. Пример, который вы нашли, кажется отличной отправной точкой. Он вставляет Pie3DChart. Барчарт можно добавить с помощью типа BarChart (как из пространства имен DocumentFormat.OpenXml.Drawing.Charts). –

ответ

2

Чтобы вставить базовую гистограмму, я бы не стал смотреть на код диаграммы и попытаться угадать, как преобразовать ее в диаграмму.

Более быстрый способ решения - использовать инструмент повышения производительности Open XML. Он имеет функцию, которая позволяет вам открыть 2 файла, определить разницу между двумя структурами Open XML и сгенерировать код, необходимый для того, чтобы первый файл выглядел как второй файл.

попробовать этот подход:

  1. Install the Open XML Productivity Tool
  2. Сохраните документ Word (чистую версию перед Pie Chart кусок был добавлен) и назовите его NoBarChart.docx
  3. Сделайте копию NoBarChart.docx имени его WithBarChart.docx
  4. Откройте WithBarChart.docx со словом и добавьте диаграмму столбца (Insert-> Chart-> Bar).
  5. Стиль диаграммы с цветами, форматами и т. Д., Чтобы соответствовать вашему окончательному решению и сохранить и закрыть.
  6. Запустите инструмент «Производительность Open XML» и нажмите кнопку «». Сравните файлы и нажмите кнопку вверху.
  7. Выберите NoBarChart.docx для источника и WithBarChart.docx для целевого
  8. Нажмите подсвеченные части файла, которые отличаются и нажмите View Part Diff, чтобы увидеть различия в XML. Затем нажмите Просмотреть код пакета, и инструмент сгенерирует код, чтобы источник выглядел как цель.

Осмотрите код, который он генерирует, на предмет того, как добавить гистограмму. Если какой-либо код отсутствует, вы можете сгенерировать весь файл цели с помощью инструмента.

Ссылка на простое приложение WPF, которое создает пустой документ с гистограммой is on GitHub.Вот изображение документа:

enter image description here

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

+0

@Taterhead теперь работает, спасибо – WhatsThePoint