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 ...
随机推荐
- (转)安装 Apache 出现 <OS 10013> 以一种访问权限不允许的方式做了一个访问套接字的尝试
在安装Apache的过程中出现: 仔细查看提示: make_sock: could not bind to address 0.0.0.0:80 恍然大悟,计算机上安装了IIS7,80端口已占用. 打 ...
- SQL从入门到基础 - 01 数据库开发及ADO.Net
一.数据库概述 1. 用自定义文件格式保存数据的劣势:并发性差,查找数据的速度差. 2. DBMS(DataBase Management System数据库管理系统)和数据库.平时谈到“数据库”的含 ...
- [<DDGuessYouLIkeModel 0x7c99faf0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key star.
出现这个提示是由于以下原因造成: 这里我用到了MJExtension将字典转为模型,但再转为模型的时候,出现这个提示,原因就是因为NSInteger后面多一个一个“*” @property (nona ...
- 快速幂:quickpow
众所周知,快速幂是优化对数的次方运算的最普遍手段.在学习快速幂的思想时,其分治思想容易让大家用简单的递归实现. 但其实,除了递归之外,更好的方法会是简单的 WHILE循环.下面贴代码: #includ ...
- Oracle数据库简介
Oracle数据库简介 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或浏览 ...
- MYSQL id 自动加1
个人心得 建立好表以后再进行修改总是容易出错 建议用sql语句进行创建表,定义相应的属性 CREATE TABLE USER( Id INTEGER PRIMARY KEY AUTO_INCREMEN ...
- JavaScript不一样的语法
JavaScript除了面向对象的部分,基本语法和C语言类似,但是也有一些自己的特别之处,现总结如下: (1)break和continue后面可以跟label 语法: break labelname; ...
- 获取元素位置信息:getBoundingClientRect
一个神奇的方法. 一.历史 偷个懒,上个传送门:http://www.cnblogs.com/2050/archive/2012/02/01/2335211.html 二.介绍 DOM元素方法,返回一 ...
- ES6-2
向ES6看齐,用更好的JavaScript(二) 上一篇 中介绍了关于变量部分的新特性,本篇将从现有对象的拓展来展开介绍 1 增加了模板字符串 先看一下,ES6之前我们是如何实现输出模板的: do ...
- 简单DOS命令实现局域网Windows远程关机
1秒内重启局域网内计算机名为ppgsvr-pc的用户电脑shutdown -r -m \\ComputerName -t 1 1秒内关闭局域网内ppgsvr用户电脑shutdown -s -m \\C ...