之前打算用python-pptx,但是好像只能处理pptx文件。于是查了一下,有用VBA的,但是我嫌太麻烦了,还是直接用powershell方便。

# 【功能】搜索当前目录及子目录下的所有Powerpoint(.ppt .pptx)文件并导出其中包含的文字内容
# 【使用方法】首先关闭电脑上所有正在运行的PPT程序。把本文件复制到PPT文件所在的文件夹,然后打开powershell,输入
# .\ppt2txt.ps1 >"content.txt"
# 然后等着就好啦,导出的文字内容在content.txt里面
# 【常见问题】如果无法运行脚本,需要用管理员权限打开powershell并运行Set-ExecutionPolicy UnRestricted,并选择YAdd-type -AssemblyName office
Add-type -AssemblyName microsoft.office.interop.powerpoint# 搜索当前目录及子目录下的所有PPT文件
$pptSlides = Get-Childitem -Include *.ppt, *.pptx -Recurse # -Path $path# 创建一个PPT进程
$program = New-Object -ComObject PowerPoint.Application
#$ppt.Activate()
# possibly many PowerPoint files in the folder so to stop PowerPoint app from appearing and disappearing
$program.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue# walk through the collection of slides
foreach ($ppt in $pptSlides) {# write-host $ppt$presentation = $program.Presentations.open($ppt)# Max slides is determined for slide one$slideCnt = $program.ActivePresentation.Slides.Count Write-Host "[导出] $ppt [Total Slides: $slideCnt ]"$cnt = 0foreach ($slide in $program.ActivePresentation.Slides){$cnt++Write-Output "[Page $cnt of $ppt]"ForEach ($shape in $slide.Shapes) {If($shape.HasTextFrame -And $shape.TextFrame.HasText){Write-Output $shape.TextFrame.TextRange.Text.replace("`n"," ")}if($shape.HasTable){# https://www.mrexcel.com/board/threads/exporting-table-data-from-powerpoint-to-excel-using-vba-getting-error-438-object-doesnt-support-this-property.746855/# Write-Output "Table Found HERE ${shape.table.Rows.Count}x${shape.table.Columns.Count}"Write-Output "----------------------"for($row=1; $row -le $shape.table.Rows.Count; $row++){$rowStr = ""for($col=1; $col -le $shape.table.Columns.Count; $col++){$sss = $shape.table.Cell($row, $col).Shape# If($sss.HasTextFrame -And $sss.TextFrame.HasText){$rowStr = $rowStr + "| " + $sss.TextFrame.TextRange.Text.replace("`n"," ") + " "# }}Write-Output $rowStr}Write-Output "----------------------"}}if($slide.HasNotesPage){Write-Output "[NOTES]--------------------"ForEach ($shape in $slide.NotesPage.Shapes) {If($shape.HasTextFrame -And $shape.TextFrame.HasText){Write-Output $shape.TextFrame.TextRange.Text.replace("`n"," ")}}}}# prevent the Save Presentation prompt from displaying$presentation.saved = $true# close presentation$presentation.close()[gc]::collect()[gc]::WaitForPendingFinalizers()
} #end for# release memory
$program.quit()
# release the memory immediately
$program = $null
# call garbage collection
[gc]::collect()
[gc]::WaitForPendingFinalizers()

一键导出所有PPT/PPTX文件的全部文本(Powershell)相关推荐

  1. python win32com批量导出.ppt/.pptx文件所有图片

    环境:py2.7 要求: 1.先pip安装pywin32 pip install pywin32 2.这份代码最好和你的PPT文件放在同一目录下,且目录不能有中文名.如果要放在别的地方看代码注释,效果 ...

  2. xd导出标注html,使用标记狮一键导出Adobe XD标注文件到本地如何选择[导出包支持范围]...

    标记狮允许您将XD文档直接生成ZIP包保存到本地,我们提供了完整版(默认)和精简版两种方式,如下图 那么这个选项"完整版"和"精简版"有什么差别呢? 完整版比精 ...

  3. KiCAD 一键导出嘉立创生产文件 - 坐标,BOM,以及Gerber

    感谢作者开发了这样一个工具: xtoolbox/kicad_tools: Tools for kicad 1. 安装插件: Windows git clone https://github.com/x ...

  4. 使用Python批量修改PPTX文件中文本框格式

    问题描述:最近正在整理Python教材的配套PPT,原来的PPT是4:3的,考虑到现在很多屏幕都是宽屏的,于是打算重新整理一下.对于正常的幻灯片,直接在"页面设置"中修改一下就可以 ...

  5. Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)

    近期会议: 10月30-11月1日 全国高校Python课程高级研修班(苏州) 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清 ...

  6. html让文本框左剧中对齐_Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)...

    近期会议:10月30-11月1日 全国高校Python课程高级研修班(苏州)推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学 ...

  7. SpringBoot 使用LibreOffice 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件

    接上一篇:linux环境源码安装unoconv Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件 https://gblfy.blog. ...

  8. SpringBoot 使用unoconv 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件

    接上一篇:linux环境源码安装unoconv Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件 https://gblfy.blog. ...

  9. 使用Unoconv和LibreOffice进行格式转换实现在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件

    此项目根据企业真实需求制作而成,希望能帮助大家解决在线预览的问题! 此项目已开源,欢迎大家来STAR 软件 版本 SpringBoot 2.2.2.RELEASE LibreOffice 6.3.2 ...

最新文章

  1. matlab regress()
  2. jzoj1082-合并果子【堆,贪心】
  3. 打通前后端逻辑,客户端Flutter代码一天上线
  4. scala 函数中嵌套函数_如何在Scala中将函数转换为部分函数?
  5. css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」
  6. Spring和ActiveMQ整合的完整实例
  7. 注意,SVN提交代码时,会遗漏so库
  8. html5 播放加密视频,说说Html5视频加密播放原理和优势
  9. Appium 1.21.x 百度网盘下载
  10. matlab函数句柄介绍
  11. 使用matplotlib绘制高级图表
  12. javaWeb之Response
  13. 读书笔记 《拆掉思维里的墙》
  14. PeopleSoft 配置文件
  15. maven使用c3p0——详细(很详细)
  16. JavaWeb开发 —— Maven
  17. 【区块链】使用 Fabric 测试网络
  18. MTU介绍以及操作说明
  19. 下载IE6安装文件到本地的方法
  20. Python基础 | Python的组合数据类型

热门文章

  1. ssm+mysql+ssm基于web的酒店预订及个性化服务系统 毕业设计-附源码241822
  2. fit函数 model_【Tensorflow2.0】7、全流程model.fit模型训练方法
  3. sort排序中cmp()的用法
  4. usdt承兑商是什么?
  5. php lvs负载均衡,LVS负载均衡LAMP平台
  6. 前端自学笔记_json
  7. 专利与论文-7:专利在哪儿?如何发现专利?思维分析方法
  8. 安装Ubuntu后必须要做的几件事(二)--开发工具篇
  9. poj1273(网络流模板)
  10. 在阿里云使用 emqx 搭建 MQTT 服务器