
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,提供開發人員和應用程序所需的一切,以在 node.js 和 JavaScript 服務器端應用程序中創建、打開、轉換和操作 PowerPoint 文檔。
您可以通過運行此命令從 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);
// 添加矩形類型的 AutoShape
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 文件的 Presentation 類
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("Sample Title");
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, "Series 1"),chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"),chart.getType());
// 添加新類別
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 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 中向 PowerPoint 添加圖像
- 創建 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 感興趣,該 API 使一切變得簡單。