package cn.com.hongyousoft.pandorax.ppt;
import java.io.File;
import cn.com.hongyousoft.pandorax.CellUtil;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class MyTest {
public static final int WORD_HTML = 8;
public static final int WORD_TXT = 7;
public static final int EXCEL_HTML = 44;
public static final int ppSaveAsJPG = 17;
private static final String ADD_CHART = "AddChart";
private ActiveXComponent ppt;
private ActiveXComponent presentation;
/**
* 构造一个新的PPT
* @param isVisble
*/
public MyTest(boolean isVisble) {
if (null == ppt) {
ppt = new ActiveXComponent("PowerPoint.Application");
// ppt.setProperty("Visible", new Variant(isVisble));
// ppt.setProperty("WindowState ", new Variant(2));
ActiveXComponent presentations = ppt.getPropertyAsComponent("Presentations");
presentation = presentations.invokeGetComponent("Add", new Variant(1));
}
}
public MyTest(String filePath, boolean isVisble) throws Exception {
if (null == filePath || "".equals(filePath)) {
throw new Exception("文件路径为空!");
}
File file = new File(filePath);
if (!file.exists()) {
throw new Exception("文件不存在!");
}
ppt = new ActiveXComponent("PowerPoint.Application");
setIsVisble(ppt, isVisble);
// 打开一个现有的 Presentation 对象
ActiveXComponent presentations = ppt.getPropertyAsComponent("Presentations");
presentation = presentations.invokeGetComponent("Open", new Variant(filePath), new Variant(true));
}
public MyTest(String filePath, String tarPath, boolean isVisble) throws Exception {
if (null == filePath || "".equals(filePath)) {
throw new Exception("文件路径为空!");
}
File file = new File(filePath);
if (!file.exists()) {
throw new Exception("文件不存在!");
}
ppt = new ActiveXComponent("PowerPoint.Application");
setIsVisble(ppt, isVisble);
// 打开一个现有的 Presentation 对象
ActiveXComponent presentations = ppt.getPropertyAsComponent("Presentations");
presentation = presentations.invokeGetComponent("Open", new Variant(filePath), new Variant(true));
}
/**
* 播放ppt
*
* @param pptFile
* @date 2009-7-4
* @author YHY
*/
public void PPTShow(String pptFile) {
// powerpoint幻灯展示设置对象
ActiveXComponent setting = presentation.getPropertyAsComponent("SlideShowSettings");
// 调用该对象的run函数实现全屏播放
setting.invoke("Run");
// 释放控制线程
ComThread.Release();
}
/**
* ppt另存为
*
* @param presentation
* @param saveTo
* @param ppSaveAsFileType
* @date 2009-7-4
* @author YHY
*/
public void saveAs(Dispatch presentation, String saveTo, int ppSaveAsFileType) throws Exception {
Dispatch.call(presentation, "SaveAs", saveTo, new Variant(ppSaveAsFileType));
}
/**
* 关闭PPT并释放线程
* @throws Exception
*/
public void closePpt() throws Exception {
if (null != presentation) {
Dispatch.call(presentation, "Close");
}
ppt.invoke("Quit", new Variant[] {});
ComThread.Release();
}
public void closeFile() throws Exception {
if (null != presentation) {
Dispatch.call(presentation, "Close");
}
ComThread.Release();
}
/**
* 运行PPT
* @throws Exception
*/
public void runPpt() throws Exception {
ActiveXComponent setting = presentation.getPropertyAsComponent("SlideShowSettings");
setting.invoke("Run");
}
/**
* 设置是否可见
* @param visble
* @param obj
*/
private void setIsVisble(Dispatch obj, boolean visble) throws Exception {
Dispatch.put(obj, "Visible", new Variant(visble));
}
/**
*
* @param pageShapes 页面的SHAPES的对象
* @param chartType 图表类型
* @param leftDistance 距离左边框的距离
* @param topDistance 距离上边框的距离
* @param width 图表的宽度
* @param height 图表的高度
* @return
* @throws Exception
*/
public static Dispatch addChart(Dispatch pageShapes, int chartType, int leftDistance, int topDistance, int width,
int height) throws Exception {
Variant chart = Dispatch.invoke(pageShapes, ADD_CHART, 1, new Object[] { new Integer(chartType),//图表类型
new Integer(leftDistance),//距离左边框的距离
new Integer(topDistance),//距离上边框的距离
new Integer(width),//图表的宽度
new Integer(height),//图表的高度
}, new int[1]);//错误类型
return chart.toDispatch();
}
/**
* 获取第几个幻灯片
* @param index 序号,从1开始
* @return
* @throws Exception
*/
public Dispatch getPptPage(int pageIndex) throws Exception {
//获取幻灯片对象
ActiveXComponent slides = presentation.getPropertyAsComponent("Slides");
//获得第几个PPT
Dispatch pptPage = Dispatch.call(slides, "Item", new Object[] { new Variant(pageIndex) }).toDispatch();
try {
Dispatch.call(pptPage, "Select");
} catch (Exception e) {
Dispatch.call(pptPage, "Select");
}
return pptPage;
}
/**
* @Description: 第2页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT2(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第1个元素
int shapeIndex = 1;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
//第几期赋值
addText(shape1, "(第20期)");
//获取Shape中的第2个元素
shapeIndex = 2;
Dispatch shape2 = getShapeByIndex(shapes, shapeIndex);
//日期赋值
addText(shape2, "2012年12月21日");
}
/**
* @Description: 第4页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT4(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第2个元素
int shapeIndex = 2;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "12月第3周, 原油平均日产0万吨, 比计划低10000万吨");
//获取幻灯片中的第N个元素
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
int[] plans = { 88888, 59548, 30323, 27516, 15000, 15903, 12774, 11774, 5613, 4484, 4290, 1419, 355, 548, 129 };
int[] realitys = { 188888, 159548, 130323, 127516, 115000, 115903, 112774, 111774, 15613, 14484, 14290, 11419,
1355, 1548, 1129 };
char c = 'B';//定义英语大写首字母
for (int i = 1; i <= 15; i++) {
// 修改计划的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "2" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", plans[i - 1]);
// 修改实际的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "3" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", realitys[i - 1]);
c++;
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第5页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT5(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第2个元素
int shapeIndex = 2;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "12月第3周,平均日产2亿方/日, 与月度基本计划一致,主要气区生产平稳");
//获取幻灯片中的第1个元素 操作图表
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
String[] companys = { "新疆", "大庆", "股份", "青海", "塔里木" };
int[] plans = { 8, 5, 3, 4, 6 };
int[] realitys = { 88, 55, 33, 44, 66 };
char c = 'B';//定义英语大写首字母
for (int i = 1; i <= 5; i++) {
// 修改公司的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "1" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", companys[i - 1]);
// 修改计划的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "2" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", plans[i - 1]);
// 修改实际的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "3" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", realitys[i - 1]);
c++;
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第7页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT7(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取幻灯片中的第1个元素 操作图表
int shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
String[] companys = { "陕京线", "靖西线 ", "忠武线", " 涩宁兰线", "西气东输" };
String[] plans = { "1.8", "1.5", "1.3", "1.4", "1.6" };
String[] realitys = { "1.8", "2.5", "2.3", "2.4", "2.6" };
char c = 'B';//定义英语大写首字母
for (int i = 1; i <= 5; i++) {
// 修改管线的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "1" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", companys[i - 1]);
// 修改计划的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "2" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", plans[i - 1]);
// 修改实际的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { c + "3" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", realitys[i - 1]);
c++;
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第9页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT9(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第2个元素
int shapeIndex = 3;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "\r\t本周动用钻机2000台, 比上周增加100台." + "\r\n" + "平均日钻井进尺20万米,其中开发井20.18万米,探井及评价井5万米");
//获取幻灯片中的第1个元素 操作饼状图表
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
// 修改开发井的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { "B2" }, new int[1])
.toDispatch();
Dispatch.put(cell, "Value", "5000");
// 修改勘探井的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { "C2" }, new int[1]).toDispatch();
Dispatch.put(cell, "Value", "500");
//获取幻灯片中的第2个元素 操作图表
shapeIndex = 2;
chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
workSheetItem = this.getWorkSheetItem(workBook);
// 修改总进尺的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { "B2" }, new int[1]).toDispatch();
Dispatch.put(cell, "Value", "18.88");
// 修改开发井的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { "C2" }, new int[1]).toDispatch();
Dispatch.put(cell, "Value", "16.66");
// 修改勘探井的值
cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { "D2" }, new int[1]).toDispatch();
Dispatch.put(cell, "Value", "8.88");
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第10页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT10(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取幻灯片中的第1个元素 操作饼状图表
int shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
for (int i = 2; i < 7; i++) {
String s = "a";
for (int j = 0; j < 52; j++) {
s = CellUtil.getCellIndex(s);
// 修改曲线图的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { s + "" + i },
new int[1]).toDispatch();
Dispatch.put(cell, "Value", (int) (Math.random() * 1000));
s = s.toLowerCase();
}
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第11页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT11(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第2个元素
int shapeIndex = 2;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "新疆油田");
//获取幻灯片中的第1个元素 操作饼状图表
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
for (int i = 2; i < 5; i++) {
String s = "a";
for (int j = 0; j < 52; j++) {
s = CellUtil.getCellIndex(s);
// 修改曲线图的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { s + "" + i },
new int[1]).toDispatch();
Dispatch.put(cell, "Value", (int) (Math.random() * 1000));
s = s.toLowerCase();
}
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第12页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT12(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第2个元素
int shapeIndex = 2;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "大庆油田");
//获取幻灯片中的第1个元素 操作饼状图表
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
for (int i = 2; i < 5; i++) {
String s = "a";
for (int j = 0; j < 52; j++) {
s = CellUtil.getCellIndex(s);
// 修改曲线图的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { s + "" + i },
new int[1]).toDispatch();
Dispatch.put(cell, "Value", (int) (Math.random() * 160));
s = s.toLowerCase();
}
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第13页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT13(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
//获取Shape中的第2个元素
int shapeIndex = 2;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "辽河油田");
//获取幻灯片中的第1个元素 操作饼状图表
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
for (int i = 2; i < 5; i++) {
String s = "a";
for (int j = 0; j < 52; j++) {
s = CellUtil.getCellIndex(s);
// 修改曲线图的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { s + "" + i },
new int[1]).toDispatch();
Dispatch.put(cell, "Value", (int) (Math.random() * 140));
s = s.toLowerCase();
}
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
/**
* @Description: 第14页PPT操作
* @param window
* @param pageIndex
* @throws Exception
*/
private void scyxPPT14(Dispatch window, int pageIndex) throws Exception {
getPptPage(pageIndex);
//获取当前页中的Shape对象
Dispatch shapes = getShapes(window);
int shapeIndex = 2;
Dispatch shape1 = getShapeByIndex(shapes, shapeIndex);
Dispatch.call(shape1, "Select");
//第几期赋值
addText(shape1, "华北油田");
//获取幻灯片中的第1个元素 操作饼状图表
shapeIndex = 1;
Dispatch chartData = getChartData(shapes, shapeIndex);
Dispatch.call(chartData, "Activate");//激活excel sheet,不激活无法修改数据
//获得excel对象
Dispatch workBook = Dispatch.get(chartData, "Workbook").getDispatch();
Dispatch workSheetItem = this.getWorkSheetItem(workBook);
for (int i = 2; i < 5; i++) {
String s = "a";
for (int j = 0; j < 52; j++) {
s = CellUtil.getCellIndex(s);
// 修改曲线图的值
Dispatch cell = Dispatch.invoke(workSheetItem, "Range", Dispatch.Get, new Object[] { s + "" + i },
new int[1]).toDispatch();
Dispatch.put(cell, "Value", (int) (Math.random() * 120));
s = s.toLowerCase();
}
}
Dispatch.call(workBook, "Close"); //关闭当前excel文件
}
public Dispatch getWorkSheetItem(Dispatch workBook) {
Dispatch workSheets = Dispatch.get(workBook, "Worksheets").getDispatch();
return Dispatch.call(workSheets, "Item", new Variant(1)).toDispatch();
}
/**
* @Description: 获得操作表的对象
* @param shapes
* @param shapeIndex
* @return
*/
private Dispatch getChartData(Dispatch shapes, int shapeIndex) {
Dispatch shape = Dispatch.call(shapes, "Item", new Variant(shapeIndex)).toDispatch();
Dispatch.call(shape, "Select");
Dispatch chart = Dispatch.get(shape, "Chart").getDispatch();
Dispatch chartData = Dispatch.get(chart, "ChartData").getDispatch();
return chartData;
}
/**
* 设置图表上是否显示数据表格
* @param chartObj
* @param value
* @throws Exception
*/
public static void setHasDataTable(Dispatch chartObj, boolean value) throws Exception {
Dispatch.put(chartObj, "HasDataTable", value);
}
/**
* @Description: 文本域赋值
* @param shape
*/
private void addText(Dispatch shape, String value) {
Dispatch textFrame = Dispatch.get(shape, "TextFrame").getDispatch();
Dispatch textRange = Dispatch.get(textFrame, "TextRange").getDispatch();
Dispatch.call(textRange, "Select");
Dispatch.put(textRange, "Text", value);
}
/**
* @Description: 获取Shape中的第几个元素
* @param shapes
* @param shapeIndex
* @return
*/
private Dispatch getShapeByIndex(Dispatch shapes, int shapeIndex) {
Dispatch shape = Dispatch.call(shapes, "Item", new Variant(shapeIndex)).toDispatch();
try {
Dispatch.call(shape, "Select");
} catch (Exception e) {
Dispatch.call(shape, "Select");
}
return shape;
}
/**
* @Description: 获取当前页中的Shape对象
* @param window
* @return
*/
private Dispatch getShapes(Dispatch window) {
Dispatch selection = Dispatch.get(window, "Selection").toDispatch();
Dispatch slideRange = Dispatch.get(selection, "SlideRange").getDispatch();
Dispatch shapes = Dispatch.get(slideRange, "Shapes").getDispatch();
return shapes;
}
public static void main(String[] strs) throws Exception {
String templatePPT = "e:/生成运行周报模版1.pptx";
MyTest test = new MyTest(templatePPT, true);
test.generageSCYXZBPpt();
}
/**
* @Description: 生成PPT
* @throws Exception
*/
public void generageSCYXZBPpt() throws Exception {
long startTime = System.currentTimeMillis();
Dispatch windows = presentation.getProperty("Windows").toDispatch();
//获取打开的第几个ppt文件
int pptFileIndex = 1; //第几个ppt文件,一个powerpoint可能同时打开多个文件。此处应注意唯一性,存在并发问题,可考虑先拷贝模板为其他文件,然后打开,并赋值。
Dispatch window = Dispatch.call(windows, "Item", new Variant(pptFileIndex)).toDispatch();
//操作PPT中第2页
int pageIndex = 2;
scyxPPT2(window, pageIndex);
//操作PPT中第4页
pageIndex = 4;
scyxPPT4(window, pageIndex);
//操作PPT中第5页
pageIndex = 5;
scyxPPT5(window, pageIndex);
//操作PPT中第7页
pageIndex = 7;
scyxPPT7(window, pageIndex);
//操作PPT中第9页
pageIndex = 9;
scyxPPT9(window, pageIndex);
//操作PPT中第10页
pageIndex = 10;
scyxPPT10(window, pageIndex);
//操作PPT中第11页
pageIndex = 11;
scyxPPT11(window, pageIndex);
//操作PPT中第12页
pageIndex = 12;
scyxPPT12(window, pageIndex);
//操作PPT中第13页
pageIndex = 13;
scyxPPT13(window, pageIndex);
//操作PPT中第14页
pageIndex = 14;
scyxPPT14(window, pageIndex);
//保存ppt
presentation.invoke("SaveAs", new Variant("e:/测试.pptx"));
// PPTShow("e:/测试.pptx");
//关闭当前ppt文件
if (null != presentation) {
Dispatch.call(presentation, "Close");
}
//
//退出powerpoint
ppt.invoke("Quit", new Variant[] {});
// 释放控制线程
ComThread.Release();
long endTime = System.currentTimeMillis();
System.out.println("====" + (endTime - startTime));
}
}
|