c# 操作PPT
前段时间要做一个把指定图片放到新建的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的更多相关文章
- JAVA通过COM接口操作PPT
		一. 背景说明 在Eclipse环境下,开发JAVA代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,即先收工创建好模板,在程序中修改模板数据. ... 
- C++通过COM接口操作PPT
		一. 背景 在VS环境下,开发C++代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,先手工创建好PPT模板,在程序中修改模板数据. 二. 开发 ... 
- java poi 操作ppt
		java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ... 
- winfrom 操作PPT
		///winfrom 操作PPT using System; using System.Collections.Generic; using System.Linq; using System.Tex ... 
- Jacob操作ppt
		前几天使用Apache 的POI操作ppt,后来发现转成的图片出现乱码,而且处理了之后,还会有遗留 因此决定换一种处理方式 Jacob 是 JAVA-COM Bridge的缩写,是一个中间件,能够提供 ... 
- poi 操作 PPT,针对 PPTX--图表篇
		poi 操作 PPT,针对 PPTX--图表篇 目录 poi 操作 PPT,针对 PPTX--图表篇 1.读取 PPT 模板 2.替换标题 4.替换图表数据 接下来对 ppt 内的图表进行操作,替换图 ... 
- C#操作PPT表格
		1.激活组件 AxFramerControl改控件的dll自己再网上百度下下载这里不多讲 /// <summary> /// 检测是否注册控件 /// < ... 
- C# 操作PPt,去掉文本框的边框
		using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECO ... 
- (转)C#操作PPT
		原文地址:http://blog.163.com/loveyingchun_1314/blog/static/2382425120124312627530/ 引用Microsoft.Office.Co ... 
- Java 利用POI操作PPT
		解析PPT文件中的图片 import java.io.File; import java.io.FileOutputStream; import org.apache.poi.hslf.HSLFSli ... 
随机推荐
- Ajax调用webService(一) 不跨域。
			注:需要的js文件与组件(jquery-1.4.2.min.js和Newtonsoft.Json) 同域:要调用的webservice与ajax请求页面在同一个网站下(本文中都是本地测试). 数据库( ... 
- 单篇文章JS模拟分页
			废话部分 前两天做了一个前台分页插件,支持ajax读取数据绑定前台 和 url带页码参数跳转两种方式.于是稍加改动,做了一个单篇文章js模拟分页的代码,为什么说是模拟分页呢?因为在服务器响应HTML请 ... 
- CDN的全称是Content Delivery Network,即内容分发网络
			CDN的全称是Content Delivery Network,即内容分发网络 http://baike.baidu.com/link?url=Wd-IGGgslfJemdpuT3Y0BUi88RPQ ... 
- [php基础]PHP Form表单验证:PHP form validator使用说明
			在PHP网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ... 
- sql sever 随机查询
			Select * From TableName Order By NewID() NewID()函数将创建一个 uniqueidentifier 类型的唯一值.上面的语句实现效果是从Table中随 ... 
- MySQL的truncate table 和source 命令
			1. truncate table XXX 在测试时,我很讨厌某表的主键一直自增长下去,总觉得从1开始最舒服,^_^,truncate table 就可以帮我,相比delete from 来说 ... 
- java swing 音乐播放器-乐乐音乐
			乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ... 
- 关于操作DC时的资源泄露
			首先应明确一个概念 句柄, 关于句柄的详细介绍请见这里 对于句柄的使用小结:借来的要归还,创建的要释放,选出的要选入[尤其是针对GDI的一些句柄而言,如HPEN,HBRUSH等] 1. 使用GetDC ... 
- 数据库触发器new old
			数据库触发器new old: "NEW . column_name"或者"OLD . column_name".这样在技术上处理(NEW | OLD . col ... 
- part3
			我就不刁旭概念什么的问题了哈~直接进入工作中所通用的一些有关object的方法和属性 1).for/in 属性的遍历~他遍历的对象没有特定的顺序,而且只能枚举出所有用户自定义的属性,不能枚举出某些预定 ... 
