Как создать Microsoft.Office.Interop.PowerPoint.ColorFormatC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать Microsoft.Office.Interop.PowerPoint.ColorFormat

Сообщение Anonymous »

У меня есть этот пример кода в «C:\myPowerPoint» для C# Windows Forms .NET
Я добавил из Диспетчера ссылок>COM>Библиотеки типов ссылку на сборку «Microsoft Office» 16.0 Object Library» (версия 2.8) или также из NuGet: «Microsoft.Office.Interop.PowerPoint» (версия 15.0.4420.1018) добавлен в мой проект...
Я создал Form1 и кнопку1:

Код: Выделить всё

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;
using State = Microsoft.Office.Core.MsoTriState;
using System;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;

namespace myPowerPoint
{
public partial class Form1 : Form
{
Microsoft.Office.Interop.PowerPoint.Application pptApplication = null;
PowerPoint.Presentation ppt = null;
PowerPoint.Slides slides = null;
PowerPoint.Slide slide = null;
PowerPoint.ColorFormat colorFormat = null;
readonly float u = 72.0f; // Inches
int k = 0; // Loop index

public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e)
{
// Create a temporary PowerPoint Application to interact with
pptApplication = new PowerPoint.Application();
ppt = pptApplication.Presentations.Add(State.msoFalse);
ppt.Slides.Application.Caption = "My First PowerPoint";
slides = ppt.Slides; // pptApplication.Presentations.Slides

// First Slide - Blank
slide = slides.AddSlide(1, ppt.SlideMaster.CustomLayouts[PowerPoint.PpSlideLayout.ppLayoutText]);
slide.Layout = PowerPoint.PpSlideLayout.ppLayoutBlank;

// First Shape - FlowchartTerminator
slide.Shapes.AddShape(Office.MsoAutoShapeType.msoShapeFlowchartTerminator, 6.61f * u, 4.57f * u, 0.77f * u, 0.23f * u);
int i = slide.Shapes.Count;
colorFormat = applyMyTemplate(slide.Shapes[i].Fill.ForeColor);
slide.Shapes[i].TextFrame.TextRange.Font.Name = "Arial Narrow";
slide.Shapes[i].TextFrame.TextRange.Font.Size = 5.0f;
slide.Shapes[i].TextFrame.VerticalAnchor = Office.MsoVerticalAnchor.msoAnchorMiddle;
slide.Shapes[i].TextFrame.HorizontalAnchor = Office.MsoHorizontalAnchor.msoAnchorCenter;
slide.Shapes[i].TextFrame.TextRange.Text = "Box";
slide.Shapes[i].Top = 4.57f * u;
slide.Shapes[i].Width = 0.77f * u;
slide.Shapes[i].Fill.ForeColor = colorFormat; // Here
slide.Shapes[i].Line.ForeColor = colorFormat; // Here2
slide.Shapes[i].Shadow.ForeColor = colorFormat; // Here3
slide.Shapes[i].Height = 0.23f * u;
slide.Shapes[i].Left = 6.61f * u;

// Save and close PowerPoint
string path = @"C:\myPowerPoint\";
string file = "Presentation_" + System.DateTime.Now.ToUniversalTime() + ".ppt";
file = file.Replace(":", "_").Replace("/", "_").Replace(" ", "_");
if (System.IO.File.Exists(path + file)) System.IO.File.Delete(path + file);
ppt.SaveAs(path + file, PowerPoint.PpSaveAsFileType.ppSaveAsPresentation, Office.MsoTriState.msoCTrue);
ppt.Close();
}

private PowerPoint.ColorFormat applyMyTemplate(PowerPoint.ColorFormat colorFormat)
{
// Do some processing... Just an example, ignore it
k++;
if (k == 1) { colorFormat.SchemeColor = PowerPoint.PpColorSchemeIndex.ppAccent1; }
if (k == 2) { colorFormat.SchemeColor = PowerPoint.PpColorSchemeIndex.ppAccent2; }
if (k == 3) { colorFormat.SchemeColor = PowerPoint.PpColorSchemeIndex.ppAccent3; k = 0; }
return colorFormat;
}
}
}
Необходимо определить исключение из-за того, что colorFormat
Поэтому мне нужно знать, как создать colorFormat.
Вопрос решен, если «colorFormat» правильно определен в «slide.Shapes.Fill.ForeColor = colorFormat;» поэтому код создаст файл Power Point. В таком представлении фоновый цвет будет отображаться в поле «Box», определенном параметром colorFormat.
Отредактировано: 24 ноября 2024 г. Я заменил BackColor на ForeColor следующим образом:

Код: Выделить всё

slide.Shapes[i].Fill.ForeColor = colorFormat; // Here
Отредактировано: 26 ноября 2024 г. Мне нужно переформулировать вопрос, поскольку похоже, что я спрашиваю о цвете RGB, но, как указал Виктор ниже, я предполагалось, что ColorFormat является классом, но интерфейсом. Итак, я обновил код, в котором хочу применить свой шаблон. Это правильное решение вопроса? Пожалуйста, функция applyMyTemplate() является всего лишь функциональным примером и не имеет отношения к вопросу, не пытайтесь оптимизировать.

Подробнее здесь: https://stackoverflow.com/questions/792 ... olorformat
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как создать Microsoft.Office.Interop.PowerPoint.ColorFormat
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как создать Microsoft.Office.Interop.PowerPoint.ColorFormat
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как создать Microsoft.Office.Interop.PowerPoint.ColorFormat
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как создать Microsoft.Office.Interop.PowerPoint.ColorFormat
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как создать Microsoft.Office.Interop.PowerPoint.ColorFormat
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»