Ownsight

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 1909|回复: 0
打印 上一主题 下一主题

c# 创建 ppt

[复制链接]

803

主题

903

帖子

3201

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3201
跳转到指定楼层
楼主
发表于 2015-11-3 16:07:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
string MyFileName;
? ?? ?? ?? ?PowerPoint.ApplicationClass MyApp;
? ?? ?? ?? ?PowerPoint.Presentations MyPresSet;
? ?? ?? ?? ?PowerPoint._Presentation MyPres;
? ?? ?? ?? ?PowerPoint.Slides MySlides;
? ?? ?? ?? ?PowerPoint._Slide MySlide;
? ?? ?? ?? ?PowerPoint.SlideShowTransition MySST;
? ?? ?? ?? ?PowerPoint.SlideShowSettings MySSS;
? ?? ?? ?? ?PowerPoint.SlideRange MySldRng;
? ?? ?? ?? ?PowerPoint.SlideShowWindows MySSWs;
? ?? ?? ?? ?bool MyAssistantOn;
? ?? ?? ?? ?int i, MyCount;
? ?? ?? ?? ?PowerPoint.TextRange MyTextRng;
? ?? ?? ?? ?Microsoft.Office.Interop.Graph.Chart MyChart;
? ?? ?? ?? ?PowerPoint.Shapes MyShapes;
? ?? ?? ?? ?PowerPoint.Shape MyShape;
? ?? ?? ?? ?try
? ?? ?? ?? ?{
? ?? ?? ?? ?? ? String MyTemplateFile = @"C:\Users\aa\Desktop\SIM.pot";//确保文件的有效
? ?? ?? ?? ?? ? String strPic = @"C:\Users\aa\Desktop\bx11.jpg";

? ?? ?? ?? ?? ? String filename = @"C:\Users\aa\Desktop\sim.pptx";
? ?? ?? ?? ?? ? MyApp = new PowerPoint.ApplicationClass();
? ?? ?? ?? ?? ? MyApp.Visible = MsoTriState.msoCTrue;
? ?? ?? ?? ?? ? MyPresSet = MyApp.Presentations;
? ?? ?? ?? ?? ? MyPres = MyPresSet .Add(MsoTriState.msoCTrue);
? ?? ?? ?? ???//??MyPres = objPresSet.Open(MyTemplateFile, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);//这里是打开模板
? ?? ?? ?? ?? ? MySlides = MyPres.Slides;

? ?? ?? ?? ?? ? //创建幻灯片第一页 添加文字,图片
? ?? ?? ?? ?? ? MySlide = MySlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
? ?? ?? ?? ?? ?? ?? ?? ?//? ?? ?MySlide.Background.Fill.UserPicture(strPic);//用图片填充背景
? ?? ?? ? //? ?? ?MySlide.FollowMasterBackground = MsoTriState.msoFalse;
? ?? ?? ?? ?? ? MyTextRng = MySlide.Shapes[1].TextFrame.TextRange;
? ?? ?? ?? ?? ? MyTextRng.Text = "125555555555555555555552111111";
? ?? ?? ?? ?? ? MyTextRng.Font.Name = "宋体";
? ?? ?? ?? ?? ? MyTextRng.Font.Size = 48;
? ?? ?? ?? ?? ? MySlide.Shapes.AddPicture(MyFileName, MsoTriState.msoFalse, MsoTriState.msoTrue, 150, 150, 500, 350);
? ?? ?? ?? ?? ? //创建幻灯片第二页 绘图
? ?? ?? ?? ?? ? MySlide = MySlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
? ?? ?? ?? ?? ? MyTextRng = MySlide.Shapes[1].TextFrame.TextRange;
? ?? ?? ?? ?? ? MyTextRng.Text = "演示绘制饼图";
? ?? ?? ?? ?? ? MyTextRng.Font.Name = "宋体";
? ?? ?? ?? ?? ? MyTextRng.Font.Size = 48;
? ?? ?? ?? ?? ? MyChart = (Microsoft.Office.Interop.Graph.Chart)MySlide.Shapes.AddOLEObject(150, 150, 480, 320, "MSGraph.Chart.8", "", MsoTriState.msoFalse, "", 0, "", MsoTriState.msoFalse).OLEFormat.Object;
? ?? ?? ?? ?? ? MyChart.ChartType = Microsoft.Office.Interop.Graph.XlChartType.xl3DPie;
? ?? ?? ?? ?? ? MyChart.Legend.Position = Microsoft.Office.Interop.Graph.XlLegendPosition.xlLegendPositionBottom;
? ?? ?? ?? ?? ? MyChart.HasTitle = true;
? ?? ?? ?? ?? ? MyChart.ChartTitle.Text = "经典系列丛书2006年度图书销量";
? ?? ?? ?? ?? ? //创建幻灯片第三页 艺术字体
? ?? ?? ?? ?? ? MySlide = MySlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank);
? ?? ?? ?? ?? ? MySlide.FollowMasterBackground = MsoTriState.msoFalse;
? ?? ?? ?? ?? ? MyShapes = MySlide.Shapes;
? ?? ?? ?? ?? ? MyShape = MyShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect1, "艺术字体测试", "Impact", 50, MsoTriState.msoFalse, MsoTriState.msoFalse, 0,0);
? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ? MyCount = (int)MySlides.Count;
? ?? ?? ?? ?? ? int[] MySlideIdx = new int[MyCount];

? ?? ?? ?? ???
? ?? ?? ?? ?
? ?? ?? ?? ?? ? for (i = 0; i < MyCount; i++)
? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ?? ???MySlideIdx[i] = i + 1;
? ?? ?? ?? ?? ? }
? ?? ?? ?? ?? ? MySldRng = MySlides.Range(MySlideIdx);
? ?? ?? ?? ?? ? MySST = MySldRng.SlideShowTransition;
? ?? ?? ?? ?? ? MySST.AdvanceOnTime = MsoTriState.msoFalse;//自动播放
? ?? ?? ?? ?? ? MySST.AdvanceTime = 1;
? ?? ?? ?? ?? ? MySST.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut;
? ?? ?? ?? ?? ? MyAssistantOn = MyApp.Assistant.On;
? ?? ?? ?? ?? ? MyApp.Assistant.On = false;
? ?? ?? ?? ?? ? MySSS = MyPres.SlideShowSettings;
? ?? ?? ?? ?? ? MySSS.StartingSlide = 1;
? ?? ?? ?? ?? ? MySSS.EndingSlide = 1;
? ?? ?? ?? ?? ? MySSS.Run();
? ?? ?? ?? ?? ? MySSWs = MyApp.SlideShowWindows;
? ?? ?? ?? ?? ? while (MySSWs.Count >= 1)
? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ?? ???System.Threading.Thread.Sleep(3000);
? ?? ?? ?? ?? ? }
? ?? ?? ?? ?? ? if (MyAssistantOn)
? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ?? ???MyApp.Assistant.On = true;
? ?? ?? ?? ?? ?? ???MyApp.Assistant.Visible = false;
? ?? ?? ?? ?? ? }
? ?? ?? ?? ?? ? MyPres.SaveAs(filename, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoFalse);
? ?? ?? ?? ?? ? MyPres.Close();
? ?? ?? ?? ?? ? MyApp.Quit();

? ?? ?? ???
? ?? ?? ?? ? //? ?MessageBox.Show("PPT文件生成成功!");

? ?? ?? ?? ?}
? ?? ?? ?? ?catch (Exception MyEx)
? ?? ?? ?? ?{
? ?? ?? ?? ?? ? MessageBox.Show(MyEx.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
? ?? ?? ?? ?}
? ?? ?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表