📄 pptautomation.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Graph = Microsoft.Office.Interop.Graph;
using System.Runtime.InteropServices;
/// <summary>
/// PPTAutomation 的摘要说明
/// </summary>
public class PPTAutomation
{
//// Dim objApp As PowerPointMe.Application
////Dim objPresSet As PowerPointMe.Presentations
////Dim objPres As PowerPointMe.Presentation
////Dim objSlides As PowerPointMe.Slides
////Dim objSlide As PowerPointMe.Slide
////Dim objTextRng As PowerPointMe.TextRange
// PPT.Application objApp;
// PPT.Presentations objPresSet;
// PPT.Presentation objPres;
// PPT.Slides objSlides;
// PPT.Slide objSlide;
// PPT.TextRange objTextRng;
//public void CreateFile(string str)
//{
// string template = @"D:\Program Files\Microsoft Office\Templates\Presentation Designs\Globe.pot";
// objApp = new PPT.Application();
// objApp.Visible = MsoTriState.msoTrue;
// objPresSet = objApp.Presentations;
// objPres = objPresSet.Open(template, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
// objSlide = objSlides.Add(1, PPT.PpSlideLayout.ppLayoutTitleOnly);
// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 100, 500, 80);
// objTextRng = objSlide.Shapes.Range(1).TextFrame.TextRange;
// objTextRng.Text = "These are my details";
// objTextRng.Font.Name = "Arial";
// objTextRng.Font.Size = 20;
//}
////' public void CreateFile
////Sub CreateFile(ByVal array As StringCollection)
//// Dim strTemplate As String
//// strTemplate = "C:\\Program Files\\Microsoft Office\\Templates\\Presentation Designs\\Stream.pot"
//// 'Create a new presentation based on a template.
//// objApp = New PowerPointMe.Application
//// objApp.Visible = MsoTriState.msoTrue
//// objPresSet = objApp.Presentations
//// objPres = objPresSet.Open(strTemplate, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue)
//// objSlides = objPres.Slides
//// 'Adding One slide
//// objSlide = objSlides.Add(1, PowerPointMe.PpSlideLayout.ppLayoutTitleOnly)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 100, 500, 80)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 150, 500, 80)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 200, 500, 80)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 250, 500, 80)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 300, 500, 80)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 350, 500, 80)
//// objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 100, 400, 500, 80)
//// objTextRng = objSlide.Shapes.Item(1).TextFrame.TextRange
//// objTextRng.Text = "These are my details"
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
//// objTextRng = objSlide.Shapes(2).TextFrame.TextRange
//// objTextRng.Text = array(0)
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
//// objTextRng = objSlide.Shapes(3).TextFrame.TextRange
//// objTextRng.Text = array(1)
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
//// objTextRng = objSlide.Shapes(4).TextFrame.TextRange
//// objTextRng.Text = array(2)
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
//// objTextRng = objSlide.Shapes(5).TextFrame.TextRange
//// objTextRng.Text = array(3)
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
//// objTextRng = objSlide.Shapes(6).TextFrame.TextRange
//// objTextRng.Text = array(4)
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
//// objTextRng = objSlide.Shapes(7).TextFrame.TextRange
//// objTextRng.Text = array(5)
//// objTextRng.Font.Name = "Arial"
//// objTextRng.Font.Size = 20
////End Sub
//public PPTAutomation()
//{
// //
// // TODO: 在此处添加构造函数逻辑
// //
//}
public void ShowPresentation()
{
String strTemplate, strPic;
strTemplate = @"D:\Program Files\Microsoft Office\Templates\Presentation Designs\Globe.pot";
strPic = "C:\\100_0130.jpg";
bool bAssistantOn;
PowerPoint.Application objApp;
PowerPoint.Presentations objPresSet;
PowerPoint._Presentation objPres;
PowerPoint.Slides objSlides;
PowerPoint._Slide objSlide;
PowerPoint.TextRange objTextRng;
PowerPoint.Shapes objShapes;
PowerPoint.Shape objShape;
PowerPoint.SlideShowWindows objSSWs;
PowerPoint.SlideShowTransition objSST;
PowerPoint.SlideShowSettings objSSS;
PowerPoint.SlideRange objSldRng;
Graph.Chart objChart;
//Create a new presentation based on a template.
objApp = new PowerPoint.Application();
objApp.Visible = MsoTriState.msoTrue;
objPresSet = objApp.Presentations;
objPres = objPresSet.Open(strTemplate,
MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
objSlides = objPres.Slides;
//Build Slide #1:
//Add text to the slide, change the font and insert/position a
//picture on the first slide.
objSlide = objSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
objTextRng.Text = "My Sample Presentation";
objTextRng.Font.Name = "Comic Sans MS";
objTextRng.Font.Size = 48;
objSlide.Shapes.AddPicture(strPic, MsoTriState.msoFalse, MsoTriState.msoTrue,
150, 150, 500, 350);
//Build Slide #2:
//Add text to the slide title, format the text. Also add a chart to the
//slide and change the chart type to a 3D pie chart.
objSlide = objSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
objTextRng.Text = "My Chart";
objTextRng.Font.Name = "Comic Sans MS";
objTextRng.Font.Size = 48;
objChart = (Graph.Chart)objSlide.Shapes.AddOLEObject(150, 150, 480, 320,
"MSGraph.Chart.8", "", MsoTriState.msoFalse, "", 0, "",
MsoTriState.msoFalse).OLEFormat.Object;
objChart.ChartType = Graph.XlChartType.xl3DPie;
objChart.Legend.Position = Graph.XlLegendPosition.xlLegendPositionBottom;
objChart.HasTitle = true;
objChart.ChartTitle.Text = "Here it is...";
//Build Slide #3:
//Change the background color of this slide only. Add a text effect to the slide
//and apply various color schemes and shadows to the text effect.
objSlide = objSlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank);
objSlide.FollowMasterBackground = MsoTriState.msoFalse;
objShapes = objSlide.Shapes;
objShape = objShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect27,
"The End", "Impact", 96, MsoTriState.msoFalse, MsoTriState.msoFalse, 230, 200);
//Modify the slide show transition settings for all 3 slides in
//the presentation.
int[] SlideIdx = new int[3];
for (int i = 0; i < 3; i++) SlideIdx[i] = i + 1;
objSldRng = objSlides.Range(SlideIdx);
objSST = objSldRng.SlideShowTransition;
objSST.AdvanceOnTime = MsoTriState.msoTrue;
objSST.AdvanceTime = 3;
objSST.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut;
//Prevent Office Assistant from displaying alert messages:
bAssistantOn = objApp.Assistant.On;
objApp.Assistant.On = false;
//Run the Slide show from slides 1 thru 3.
objSSS = objPres.SlideShowSettings;
objSSS.StartingSlide = 1;
objSSS.EndingSlide = 3;
objSSS.Run();
//Wait for the slide show to end.
objSSWs = objApp.SlideShowWindows;
while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(100);
//Reenable Office Assisant, if it was on:
if (bAssistantOn)
{
objApp.Assistant.On = true;
objApp.Assistant.Visible = false;
}
//Close the presentation without saving changes and quit PowerPoint.
objPres.Close();
objApp.Quit();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -