
Microsoft PowerPoint 应用程序(在 Windows、macOS 和其他平台上)允许您创建包含文本、图像、图表、动画和许多其他元素的演示文稿和幻灯片放映。
在您阅读完本文时,您将学习 如何在 Node.js 中创建 PowerPoint 并通过运行 node.js 代码向演示文稿添加各种内容。
- 获取 Node.js PowerPoint API
- 在 Node.js 中创建 PowerPoint
- 在 Node.js 中打开 PowerPoint
- 向 PowerPoint 添加幻灯片
- 向 PowerPoint 添加文本
- 在 PowerPoint 中创建图表
- 向 PowerPoint 添加图像
获取 Node.js PowerPoint API

Aspose.Slides for Node.js via Java 是一个强大的 API,为开发人员和应用程序提供了创建、打开、转换和操作 PowerPoint 文档所需的一切,适用于 node.js 和 javascript 服务器端应用程序。
您可以通过运行以下命令从 NPM 安装 Aspose.Slides for Node.js via Java:
npm install aspose.slides.via.java
如果在安装过程中遇到任何问题,请参阅此 产品页面。
备注:
- 有关替代安装方法,请参阅我们文档中的 安装 文章。
- 注意 Node.js 和 Java 之间的产品限制和差异。请参阅我们的文档 限制和差异文章 和 nodejs-java 桥接产品页面。
在 Node.js 中创建 PowerPoint PPT
- 创建 Presentation 类的实例。
- 通过 Presentation.save(String, SaveFormat) 方法保存对象。
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation();
// 获取第一张幻灯片
var slide = presentation.getSlides().get_Item(0);
// 向幻灯片添加内容...
// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);
在 Node.js 中打开 PowerPoint PPT
- 创建 Presentation 类的实例,并将要打开的 PowerPoint 的路径传递给类构造函数。
- 执行任务。您可以向幻灯片添加一些内容。您可以不做任何事情。
- 保存演示文稿。
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation("presentation.pptx");
// 获取第一张幻灯片
var slide = presentation.getSlides().get_Item(0);
// 向幻灯片添加内容...
// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);
在 Node.js 中向 PowerPoint PPTX 添加幻灯片
- 创建 Presentation 类的实例,并传递要添加幻灯片的 PowerPoint 的路径。
- 通过设置对 getSlides() 方法的引用来实例化 ISlideCollection 类。
- 通过
ISlideCollection
对象公开的 addEmptySlide(ILayoutSlide) 方法向演示文稿添加一个空幻灯片。 - 使用 Presentation.save(String, SaveFormat) 方法保存更新后的演示文稿。
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation("presentation.pptx");
// 访问幻灯片集合
var slds = presentation.getSlides();
for (var i = 0; i < presentation.getLayoutSlides().size(); i++) {
// 向幻灯片集合添加一个空幻灯片
slds.addEmptySlide(presentation.getLayoutSlides().get_Item(i));
}
// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);
向 PowerPoint PPT 添加文本
- 创建 Presentation 类的实例,并传递要添加文本的 PowerPoint 的路径。
- 通过索引获取要添加文本的幻灯片的引用。
- 通过 addAutoShape() 方法添加一个矩形,并在 IAutoShape 对象中获取其引用。
- 向包含文本的形状添加 TextFrame。
- 设置文本的首选属性,如填充颜色、填充类型等。
- 通过 save(String, SaveFormat) 方法保存更新后的演示文稿。
var colorBlack = java.getStaticFieldValue("java.awt.Color", "BLACK");
var colorWhite = java.getStaticFieldValue("java.awt.Color", "WHITE");
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation("presentation.pptx");
// 获取第一张幻灯片
var sld = presentation.getSlides().get_Item(0);
// 添加一个矩形类型的自动形状
var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50);
// 向矩形添加 ITextFrame
ashp.addTextFrame("Hello World");
// 将文本颜色更改为黑色(默认是白色)
ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getFillFormat()
.setFillType(java.newByte(aspose.slides.FillType.Solid));
ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getFillFormat()
.getSolidFillColor().setColor(colorBlack);
// 将矩形的线条颜色更改为白色
ashp.getShapeStyle().getLineColor().setColor(colorWhite);
// 移除形状中的任何填充格式
ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);
在 PowerPoint PPT 中创建图表
- 创建 Presentation 类的实例,并传递要创建图表的 PowerPoint 的路径。
- 通过索引获取要创建图表的幻灯片的引用。
- 通过 addChart 方法添加您首选的图表。
- 添加图表标题。
- 访问图表数据工作表。
- 清除所有默认系列和类别。
- 添加新的系列和类别。
- 为图表系列添加新的图表数据。
- 为图表系列设置填充颜色。
- 添加图表系列标签。
- 将演示文稿保存为 PPT 文件。
var colorGreen = java.getStaticFieldValue("java.awt.Color", "GREEN");
var colorRed = java.getStaticFieldValue("java.awt.Color", "RED");
// 实例化一个表示 PPTX 文件的演示文稿类
var pres = new aspose.slides.Presentation();
// 访问第一张幻灯片
var sld = pres.getSlides().get_Item(0);
// 添加一个带有默认数据的图表
var chart = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 0, 0, 500, 500);
// 设置图表标题
chart.getChartTitle().addTextFrameForOverriding("示例标题");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(java.newByte(aspose.slides.NullableBool.True));
chart.getChartTitle().setHeight(20);
chart.hasTitle();
// 设置第一系列显示值
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
// 设置图表数据表的索引
var defaultWorksheetIndex = 0;
// 获取图表数据工作表
var fact = chart.getChartData().getChartDataWorkbook();
// 删除默认生成的系列和类别
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
var s = chart.getChartData().getSeries().size();
s = chart.getChartData().getCategories().size();
// 添加新的系列
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "系列 1"),chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "系列 2"),chart.getType());
// 添加新的类别
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "类别 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "类别 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "类别 3"));
// 获取第一系列图表
var series = chart.getChartData().getSeries().get_Item(0);
// 现在填充系列数据
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
// 为系列设置填充颜色
series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
series.getFormat().getFill().getSolidFillColor().setColor(colorRed);
// 获取第二系列图表
series = chart.getChartData().getSeries().get_Item(1);
// 填充系列数据
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
// 为系列设置填充颜色
series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
series.getFormat().getFill().getSolidFillColor().setColor(colorGreen);
// 为新系列的每个类别创建自定义标签
// 将第一个标签设置为显示类别名称
var lbl = series.getDataPoints().get_Item(0).getLabel();
lbl.getDataLabelFormat().setShowCategoryName(true);
// 将第二个标签设置为显示系列名称
lbl = series.getDataPoints().get_Item(1).getLabel();
lbl.getDataLabelFormat().setShowSeriesName(true);
// 为第三个标签显示值
lbl = series.getDataPoints().get_Item(2).getLabel();
lbl.getDataLabelFormat().setShowValue(true);
lbl.getDataLabelFormat().setShowSeriesName(true);
lbl.getDataLabelFormat().setSeparator("/");
// 保存包含图表的演示文稿
pres.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);
在 Node.js 中向 PPT 添加图像
- 创建 Presentation 类的实例。
- 通过索引获取要添加图像的幻灯片的引用。
- 通过将图像添加到与演示文稿对象相关联的 IImagescollection 来创建 IPPImage 对象,该对象将用于填充形状。
- 指定图像的宽度和高度。
- 通过形状对象公开的
AddPictureFrame
方法基于图像的宽度和高度创建 PictureFrame。 - 将包含图像的图片框添加到幻灯片中。
- 将演示文稿保存为 PPT 文件。
var fileStream = fs.createReadStream("image.png");
aspose.slides.readBytesFromStream(fileStream, function (imgArray) {
var pres = new aspose.slides.Presentation();
var img = pres.getImages().addImage(imgArray);
pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 200, img);
pres.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);
});
结论
在本文中,我们向您介绍了在 Node.js 中创建 PowerPoint 的操作,并通过简单地运行几行 Node.js 代码执行其他任务。您可能会对了解更多强大的 PowerPoint API 感兴趣,它使一切变得简单。