2015-03-16 2 views
1

В PowerPoint 2013, когда я вручную вставляю новую диаграмму в слайд, диаграмма автоматически использует стиль диаграммы «Стиль 1». Это имеет эффект установки размеров шрифтов для меток диаграмм 12.Создание новой диаграммы в PowerPoint 2013 с использованием стилей диаграмм

Однако, не применяются диаграммы стилей, если я пытаюсь добавить новую таблицу в PowerPoint 2013 с помощью следующей C# код:

var ppt = new Microsoft.Office.Interop.PowerPoint.Application(); 
var presentation = ppt.Presentations.Add(); 
var layout = Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutChart; 
var slide = presentation.Slides.Add(1, layout); 
var shapes = slide.Shapes; 
shapes.AddChart(); 

Размер шрифта по умолчанию равен 18. Есть ли способ создать диаграмму или установить стили диаграммы с помощью Interop, чтобы он соответствовал диаграмме, созданной вручную (т. Е. Применялись ли стили диаграммы)?

Мне известно о свойстве Chart.ChartStyle, как указано в C# - Excel 2013 how to change chart style, но это только, кажется, изменяет цвета и размещение легенд, а не размер шрифта. В PowerPoint нет макрорекордера, поэтому я не могу сгенерировать код VBA, чтобы воспроизвести действие по созданию нового графика.

+0

Подсказка: Используйте записи макросов в Excel. Модели объектов диаграммы весьма схожи между ними. Вам нужно будет скорректировать результаты, но это даст вам хорошее начало. –

+0

Спасибо за предложение. В рекордере Excel говорится, что я должен использовать свойство ChartStyle, которое изменяет цвет диаграммы и место размещения легенды, но не меняет размер шрифта ярлыков. Да, можно изменить размер шрифта меток осей, условных обозначений и меток данных отдельно, но я надеялся, что существует более элегантный способ избежать этого. – Justin

+0

Я не верю, что есть. Мы получили силу, и мы получили грубую силу. Я не думаю, что мы были элегантны. –

ответ

0

кажется, что вызов ClearToMatchStyle() после установки ChartStyle применяет изменения стиля шрифта, что я был после того, как:

var ppt = new Microsoft.Office.Interop.PowerPoint.Application(); 
var presentation = ppt.Presentations.Add(); 
var layout = Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutChart; 
var slide = presentation.Slides.Add(1, layout); 
var shapes = slide.Shapes; 
var chart_shape = shapes.AddChart(); 
chart_shape.Chart.ChartStyle = 201; 
chart_shape.Chart.ClearToMatchStyle(); 
Смежные вопросы