经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » VB.Net » 查看文章
C#/VB.NET:如何从 PowerPoint 演示文稿中提取文本 - Carina-baby
来源:cnblogs  作者:Carina-baby  时间:2023/5/29 15:02:50  对本文有异议

在学习或者日常工作中,有时我们需要把幻灯片的东西整理成文字,而从 PowerPoint 演示文稿中一张一张的整理手动复制粘贴,整个过程会非常费精力且耗时。那么怎么样才能比较轻松且快速地提取PowerPoint中的文字呢?今天这篇文章就将为你介绍如何通过编程方式提取PowerPoint中的文字,文章最后附有C#/VB.NET代码以及效果图,希望对你有所帮助。

程序环境

本次测试时,在程序中引入Free Spire.Presentation for .NET。可通过以下方法引用 Free Spire.Presentation.dll文件:

方法1:将 Free Spire.Presentation for .NET下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的 Spire.Presentation.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。

方法2:通过NuGet安装。可通过以下2种方法安装:

(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.Presentation”,点击“安装”。等待程序安装完成。

(2)将以下内容复制到PM控制台安装。

Install-Package FreeSpire.Presentation -Version 7.8.0

从 PowerPoint 演示文稿中提取文本

为了便于在 PowerPoint 文档中共享或传递文本信息,有时需要进行文本提取操作。以下是从所有演示文稿幻灯片中提取文本并保存在 TXT 文件中的步骤。

  • 初始化 Presentation 类的实例。
  • 使用 Presentation.LoadFromFile() 方法加载 PowerPoint 文档示例。
  • 创建 StringBuilder 实例。
  • 遍历文档中的每张幻灯片,然后遍历每张幻灯片中的所有形状。
  • 确定形状是否为 IAutoShape 类型。如果是,则遍历每个形状中的所有段落,并使用 TextParagraph.Text 属性获取段落文本。
  • 使用 StringBuilder.AppendLine() 方法将提取的文本附加到StringBuilder实例
  • 创建一个新的txt文件,并使用 File.WriteAllText() 方法将提取的文本写入该文件。

完整代码

C#

  1. using Spire.Presentation;
  2. using Spire.Presentation.Charts;
  3. using Spire.Presentation.Converter.Equation.Word;
  4. using System;
  5. using System.IO;
  6. using System.Text;
  7. namespace ExtractText
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. //初始化Presentation类的实例
  14. Presentation presentation = new Presentation();
  15. //载PowerPoint文档示例
  16. presentation.LoadFromFile("海市蜃楼是如何形成的?.pptx");
  17. //创建StringBuilder实例
  18. StringBuilder sb = new StringBuilder();
  19. //遍历文档中的每张幻灯片
  20. foreach (ISlide slide in presentation.Slides)
  21. {
  22. //遍历每张幻灯片中的每个形状
  23. foreach (IShape shape in slide.Shapes)
  24. {
  25. //检查形状是否为IAutoShape类型
  26. if (shape is IAutoShape)
  27. {
  28. //以每种形状遍历所有段落
  29. foreach (TextParagraph tp in (shape as IAutoShape).TextFrame.Paragraphs)
  30. {
  31. //提取文本并保存到StringBuilder实例
  32. sb.AppendLine(tp.Text);
  33. }
  34. }
  35. }
  36. }
  37. //创建一个新的txt文件以保存提取的文本
  38. File.WriteAllText("提取文本.txt", sb.ToString());
  39. presentation.Dispose();
  40. }
  41. }
  42. }

VB.NET

  1. Imports Spire.Presentation
  2. Imports Spire.Presentation.Charts
  3. Imports Spire.Presentation.Converter.Equation.Word
  4. Imports System.IO
  5. Imports System.Text
  6. Namespace ExtractText
  7. Friend Class Program
  8. Private Shared Sub Main(ByVal args As String())
  9. '初始化Presentation类的实例
  10. Dim presentation As Presentation = New Presentation()
  11. 'PowerPoint文档示例
  12. presentation.LoadFromFile("海市蜃楼是如何形成的?.pptx")
  13. '创建StringBuilder实例
  14. Dim sb As StringBuilder = New StringBuilder()
  15. '遍历文档中的每张幻灯片
  16. For Each slide As ISlide In presentation.Slides
  17. '遍历每张幻灯片中的每个形状
  18. For Each shape As IShape In slide.Shapes
  19. '检查形状是否为IAutoShape类型
  20. If TypeOf shape Is IAutoShape Then
  21. '以每种形状遍历所有段落
  22. For Each tp As TextParagraph In TryCast(shape, IAutoShape).TextFrame.Paragraphs
  23. '提取文本并保存到StringBuilder实例
  24. sb.AppendLine(tp.Text)
  25. Next
  26. End If
  27. Next
  28. Next
  29. '创建一个新的txt文件以保存提取的文本
  30. Call File.WriteAllText("提取文本.txt", sb.ToString())
  31. presentation.Dispose()
  32. End Sub
  33. End Class
  34. End Namespace

效果图

—本文完—

原文链接:https://www.cnblogs.com/Carina-baby/p/17440477.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号