C#實(shí)現(xiàn)從PPT中提取文本的示例代碼
在學(xué)習(xí)或者日常工作中,有時(shí)我們需要把幻燈片的東西整理成文字,而從 PowerPoint 演示文稿中一張一張的整理手動(dòng)復(fù)制粘貼,整個(gè)過程會(huì)非常費(fèi)精力且耗時(shí)。那么怎么樣才能比較輕松且快速地提取PowerPoint中的文字呢?今天這篇文章就將為你介紹如何通過編程方式提取PowerPoint中的文字,文章最后附有C#/VB.NET代碼以及效果圖,希望對(duì)你有所幫助。
程序環(huán)境
本次測試時(shí),在程序中引入Free Spire.Presentation for .NET??赏ㄟ^以下方法引用 Free Spire.Presentation.dll文件:
方法1:將 Free Spire.Presentation for .NET下載到本地,解壓,安裝。安裝完成后,找到安裝路徑下BIN文件夾中的 Spire.Presentation.dll。然后在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”,將本地路徑BIN文件夾下的dll文件添加引用至程序。
方法2:通過NuGet安裝??赏ㄟ^以下2種方法安裝:
(1)可以在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”,然后搜索“Free Spire.Presentation”,點(diǎn)擊“安裝”。等待程序安裝完成。
(2)將以下內(nèi)容復(fù)制到PM控制臺(tái)安裝。
Install-Package FreeSpire.Presentation -Version 7.8.0
從 PowerPoint 演示文稿中提取文本
為了便于在 PowerPoint 文檔中共享或傳遞文本信息,有時(shí)需要進(jìn)行文本提取操作。以下是從所有演示文稿幻燈片中提取文本并保存在 TXT 文件中的步驟。
- 初始化 Presentation 類的實(shí)例。
- 使用 Presentation.LoadFromFile() 方法加載 PowerPoint 文檔示例。
- 創(chuàng)建 StringBuilder 實(shí)例。
- 遍歷文檔中的每張幻燈片,然后遍歷每張幻燈片中的所有形狀。
- 確定形狀是否為 IAutoShape 類型。如果是,則遍歷每個(gè)形狀中的所有段落,并使用 TextParagraph.Text 屬性獲取段落文本。
- 使用 StringBuilder.AppendLine() 方法將提取的文本附加到StringBuilder實(shí)例
- 創(chuàng)建一個(gè)新的txt文件,并使用 File.WriteAllText() 方法將提取的文本寫入該文件。
完整代碼
C#
using Spire.Presentation;
using Spire.Presentation.Charts;
using Spire.Presentation.Converter.Equation.Word;
using System;
using System.IO;
using System.Text;
namespace ExtractText
{
class Program
{
static void Main(string[] args)
{
//初始化Presentation類的實(shí)例
Presentation presentation = new Presentation();
//載PowerPoint文檔示例
presentation.LoadFromFile("海市蜃樓是如何形成的?.pptx");
//創(chuàng)建StringBuilder實(shí)例
StringBuilder sb = new StringBuilder();
//遍歷文檔中的每張幻燈片
foreach (ISlide slide in presentation.Slides)
{
//遍歷每張幻燈片中的每個(gè)形狀
foreach (IShape shape in slide.Shapes)
{
//檢查形狀是否為IAutoShape類型
if (shape is IAutoShape)
{
//以每種形狀遍歷所有段落
foreach (TextParagraph tp in (shape as IAutoShape).TextFrame.Paragraphs)
{
//提取文本并保存到StringBuilder實(shí)例
sb.AppendLine(tp.Text);
}
}
}
}
//創(chuàng)建一個(gè)新的txt文件以保存提取的文本
File.WriteAllText("提取文本.txt", sb.ToString());
presentation.Dispose();
}
}
}VB.NET
Imports Spire.Presentation
Imports Spire.Presentation.Charts
Imports Spire.Presentation.Converter.Equation.Word
Imports System.IO
Imports System.Text
Namespace ExtractText
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Presentation類的實(shí)例
Dim presentation As Presentation = New Presentation()
'載PowerPoint文檔示例
presentation.LoadFromFile("海市蜃樓是如何形成的?.pptx")
'創(chuàng)建StringBuilder實(shí)例
Dim sb As StringBuilder = New StringBuilder()
'遍歷文檔中的每張幻燈片
For Each slide As ISlide In presentation.Slides
'遍歷每張幻燈片中的每個(gè)形狀
For Each shape As IShape In slide.Shapes
'檢查形狀是否為IAutoShape類型
If TypeOf shape Is IAutoShape Then
'以每種形狀遍歷所有段落
For Each tp As TextParagraph In TryCast(shape, IAutoShape).TextFrame.Paragraphs
'提取文本并保存到StringBuilder實(shí)例
sb.AppendLine(tp.Text)
Next
End If
Next
Next
'創(chuàng)建一個(gè)新的txt文件以保存提取的文本
Call File.WriteAllText("提取文本.txt", sb.ToString())
presentation.Dispose()
End Sub
End Class
End Namespace效果圖

到此這篇關(guān)于C#實(shí)現(xiàn)從PPT中提取文本的示例代碼的文章就介紹到這了,更多相關(guān)C# PPT提取文本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#?NModbus?RTU通信實(shí)現(xiàn)方法詳解
Modbus協(xié)議時(shí)應(yīng)用于電子控制器上的一種通用語言,通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)/串口和其它設(shè)備之間可以進(jìn)行通信,下面我們就來看看具體實(shí)現(xiàn)吧2024-11-11
C#?DateTime.Now.ToString()?用法示例講解
這篇文章主要介紹了C#?DateTime.Now.ToString()?用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
C#爬蟲基礎(chǔ)之HttpClient獲取HTTP請(qǐng)求與響應(yīng)
這篇文章介紹了C#使用HttpClient獲取HTTP請(qǐng)求與響應(yīng)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
C#中字符串與字節(jié)數(shù)組的轉(zhuǎn)換方式
這篇文章介紹了C#中字符串與字節(jié)數(shù)組的轉(zhuǎn)換方式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
C#中Convert.ToDecimal()報(bào)錯(cuò)問題的解決
這篇文章主要給大家介紹了關(guān)于C#中Convert.ToDecimal()報(bào)錯(cuò)問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08

