前段时间要做一个把指定图片放到新建的ppt的东西,在网上找了点资料看了一下,发现用C#做好像是最简单的一个,一下是在网上找的一段代码,直接贴进去就能够执行,可是在执行之前一定要加入dll支持:

 项目->加入引用->com->microsoft
office object libraty

 项目->加入引用->com->microsoft
powerpoint object libraty



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Microsoft.Office.Core;

using PowerPoint = Microsoft.Office.Interop.PowerPoint;

using Graph = Microsoft.Office.Interop.Graph;

using System.Runtime.InteropServices;



namespace WindowsApplication1

{

    public
partial class Form1 : Form

    {

        public
Form1()

        {

            InitializeComponent();

        }



        private
void button1_Click(object sender, System.EventArgs e)

        {

            ShowPresentation();

            GC.Collect();

        }



        private
void ShowPresentation()

        {

            String
strTemplate, strPic;

            strTemplate
=

              "C:\\Program
Files\\Microsoft Office\\Templates\\Presentation Designs\\Blends.pot";

            strPic
= "C:\\Windows\\Blue Lace 16.bmp";

            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();

        }

    }

}

c# 操作PPT的更多相关文章

  1. JAVA通过COM接口操作PPT

    一. 背景说明 在Eclipse环境下,开发JAVA代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,即先收工创建好模板,在程序中修改模板数据. ...

  2. C++通过COM接口操作PPT

    一. 背景 在VS环境下,开发C++代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,先手工创建好PPT模板,在程序中修改模板数据. 二. 开发 ...

  3. java poi 操作ppt

    java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ...

  4. winfrom 操作PPT

    ///winfrom 操作PPT using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  5. Jacob操作ppt

    前几天使用Apache 的POI操作ppt,后来发现转成的图片出现乱码,而且处理了之后,还会有遗留 因此决定换一种处理方式 Jacob 是 JAVA-COM Bridge的缩写,是一个中间件,能够提供 ...

  6. poi 操作 PPT,针对 PPTX--图表篇

    poi 操作 PPT,针对 PPTX--图表篇 目录 poi 操作 PPT,针对 PPTX--图表篇 1.读取 PPT 模板 2.替换标题 4.替换图表数据 接下来对 ppt 内的图表进行操作,替换图 ...

  7. C#操作PPT表格

    1.激活组件 AxFramerControl改控件的dll自己再网上百度下下载这里不多讲 /// <summary>        /// 检测是否注册控件        /// < ...

  8. C# 操作PPt,去掉文本框的边框

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECO ...

  9. (转)C#操作PPT

    原文地址:http://blog.163.com/loveyingchun_1314/blog/static/2382425120124312627530/ 引用Microsoft.Office.Co ...

  10. Java 利用POI操作PPT

    解析PPT文件中的图片 import java.io.File; import java.io.FileOutputStream; import org.apache.poi.hslf.HSLFSli ...

随机推荐

  1. C# 导出word文档及批量导出word文档(1)

         这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...

  2. Apache 2.x+jboss6.1反向代理session共享问题设置

    2016年8月4日,第一次开笔写博客园,今天在公司解决了一个问题. apache+jboss做负载均衡的问题一直困扰了很久.问题描述如下,使用apche做反向代理转发给3台jboss 的app,app ...

  3. Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能

    #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QMenu> #inclu ...

  4. wdcp/wdlinux 常用工具及命令集

    强制修改Mysql的root密码,在忘记mysql密码时有用 sh /www/Wdlinux/tools/mysql_root_chg.sh ftp配置文件检查,在FTP不能连接或登录时有用sh /w ...

  5. cocos2d-js 入门之碰撞

    本文由qinning199原创,转载请注明:http://www.cocos2dx.net/post/223 1.cc.rectIntersectsRect(ra,rb) 判断两个矩形是否相交,若相交 ...

  6. ie浏览器下HTML上传控件input=file的美化

    近期写东西用到了input=file这个按钮,给其添加背景,在其它浏览器上都可以正常的显示,可一到ie上便不听话了,完全没有添加上,显的很难看.今天在网上找到一方法,试过后感觉很好,终于把这个问题给解 ...

  7. c#使用UIA进行模拟点击操作

    之前,我写过一篇c#使用spy进行模拟操作的文章,有朋友在留言中提到了UIA进行操作,今天也使用UIA重新实现一次对vnc窗体的控制测试. 实现目标 在server框内填入192.168.2.200 ...

  8. c# 6.0 学习笔记

    refer : http://www.cnblogs.com/yinrq/p/5600530.html http://www.cnblogs.com/wolf-sun/p/5168217.html h ...

  9. [LeetCode 110] - 平衡二叉树 (Balanced Binary Tree)

    问题 给出一棵二叉树,判断它是否在高度上是平衡的. 对于本问题,高度上平衡的二叉树定义为:每个节点的两棵子树的深度差永远不大于1的一棵二叉树. 初始思路 根据定义,思路应该比较直接:递归计算每个节点左 ...

  10. ASCII、Unicode、GBK和UTF-8字符编码的区别联系[转]

    http://dengo.org/archives/901 这是我看过的最好的一篇讲述编码的文章 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到 ...