一键导出所有PPT/PPTX文件的全部文本(Powershell)
之前打算用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)相关推荐
- python win32com批量导出.ppt/.pptx文件所有图片
环境:py2.7 要求: 1.先pip安装pywin32 pip install pywin32 2.这份代码最好和你的PPT文件放在同一目录下,且目录不能有中文名.如果要放在别的地方看代码注释,效果 ...
- xd导出标注html,使用标记狮一键导出Adobe XD标注文件到本地如何选择[导出包支持范围]...
标记狮允许您将XD文档直接生成ZIP包保存到本地,我们提供了完整版(默认)和精简版两种方式,如下图 那么这个选项"完整版"和"精简版"有什么差别呢? 完整版比精 ...
- KiCAD 一键导出嘉立创生产文件 - 坐标,BOM,以及Gerber
感谢作者开发了这样一个工具: xtoolbox/kicad_tools: Tools for kicad 1. 安装插件: Windows git clone https://github.com/x ...
- 使用Python批量修改PPTX文件中文本框格式
问题描述:最近正在整理Python教材的配套PPT,原来的PPT是4:3的,考虑到现在很多屏幕都是宽屏的,于是打算重新整理一下.对于正常的幻灯片,直接在"页面设置"中修改一下就可以 ...
- Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)
近期会议: 10月30-11月1日 全国高校Python课程高级研修班(苏州) 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清 ...
- html让文本框左剧中对齐_Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)...
近期会议:10月30-11月1日 全国高校Python课程高级研修班(苏州)推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学 ...
- SpringBoot 使用LibreOffice 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件
接上一篇:linux环境源码安装unoconv Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件 https://gblfy.blog. ...
- SpringBoot 使用unoconv 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件
接上一篇:linux环境源码安装unoconv Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件 https://gblfy.blog. ...
- 使用Unoconv和LibreOffice进行格式转换实现在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件
此项目根据企业真实需求制作而成,希望能帮助大家解决在线预览的问题! 此项目已开源,欢迎大家来STAR 软件 版本 SpringBoot 2.2.2.RELEASE LibreOffice 6.3.2 ...
最新文章
- matlab regress()
- jzoj1082-合并果子【堆,贪心】
- 打通前后端逻辑,客户端Flutter代码一天上线
- scala 函数中嵌套函数_如何在Scala中将函数转换为部分函数?
- css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」
- Spring和ActiveMQ整合的完整实例
- 注意,SVN提交代码时,会遗漏so库
- html5 播放加密视频,说说Html5视频加密播放原理和优势
- Appium 1.21.x 百度网盘下载
- matlab函数句柄介绍
- 使用matplotlib绘制高级图表
- javaWeb之Response
- 读书笔记 《拆掉思维里的墙》
- PeopleSoft 配置文件
- maven使用c3p0——详细(很详细)
- JavaWeb开发 —— Maven
- 【区块链】使用 Fabric 测试网络
- MTU介绍以及操作说明
- 下载IE6安装文件到本地的方法
- Python基础 | Python的组合数据类型
热门文章
- ssm+mysql+ssm基于web的酒店预订及个性化服务系统 毕业设计-附源码241822
- fit函数 model_【Tensorflow2.0】7、全流程model.fit模型训练方法
- sort排序中cmp()的用法
- usdt承兑商是什么?
- php lvs负载均衡,LVS负载均衡LAMP平台
- 前端自学笔记_json
- 专利与论文-7:专利在哪儿?如何发现专利?思维分析方法
- 安装Ubuntu后必须要做的几件事(二)--开发工具篇
- poj1273(网络流模板)
- 在阿里云使用 emqx 搭建 MQTT 服务器