Ownsight

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2042|回复: 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);
            }
      

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

本版积分规则

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