吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 716|回复: 5
收起左侧

[其他原创] BAT调用PowerShell删除Excel文件里的所有图片

[复制链接]
Batcher 发表于 2023-11-14 16:32
本帖最后由 Batcher 于 2023-11-14 16:59 编辑

场景1:把当前目录下多个Excel文件里面的图片全部删除。

功能:
支持同时处理xls和xlsx文件类型。
支持一个Excel文件里面包含多个Sheet的情况。

使用方法:
以下代码保存为 DeleteExcelPic1.bat
把它和待处理的Excel文件放在同一个目录下。测试代码之前注意做好文件备份。
不需要拖放,直接双击执行 DeleteExcelPic1.bat

[Asm] 纯文本查看 复制代码
# & cls & @cd /d "%~dp0" & powershell "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $false
Get-ChildItem -Filter *.xls -File | ForEach-Object {
    $_.FullName
    $ThisWorkbook = $objExcel.Workbooks.Open($_.FullName)
    foreach ($WS in $ThisWorkbook.Worksheets) {
        $WS.Name
        $ThisWorksheet = $ThisWorkbook.Sheets.Item($WS.Name)
        $PictureGroup = $ThisWorksheet.Pictures()
        foreach ($ThisPicture in $PictureGroup) {
            $ThisPicture.Delete()
        }
    }
    $ThisWorkbook.Save()
    $ThisWorkbook.Close()
}
$objExcel.Quit()


场景2:把指定目录下多个Excel文件里面的图片全部删除,另存到一个新的文件夹。

功能:
支持同时处理xls和xlsx文件类型。
支持一个Excel文件里面包含多个Sheet的情况。

使用方法:
以下代码保存为 DeleteExcelPic2.bat 把它放在任意目录下。
假设待处理的Excel文件在 C:\Test\From 文件夹下,处理完成之后的文件另存到 C:\Test\To 文件夹下。
不需要拖放,直接双击执行 DeleteExcelPic2.bat

[Asm] 纯文本查看 复制代码
# & cls & @cd /d "%~dp0" & powershell "Get-Content '%~0' | Out-String | Invoke-Expression " & exit /b
$OldFolder = "C:\Test\From"
$NewFolder = "C:\Test\To"
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $false
Get-ChildItem -Path $OldFolder -Filter *.xls -File | ForEach-Object {
    $NewName = $NewFolder + "\" + $_.Name
    $_.FullName
    $ThisWorkbook = $objExcel.Workbooks.Open($_.FullName)
    foreach ($WS in $ThisWorkbook.Worksheets) {
        $WS.Name
        $ThisWorksheet = $ThisWorkbook.Sheets.Item($WS.Name)
        $PictureGroup = $ThisWorksheet.Pictures()
        foreach ($ThisPicture in $PictureGroup) {
            $ThisPicture.Delete()
        }
    }
    $ThisWorkbook.SaveAs($NewName)
    $ThisWorkbook.Close()
}
$objExcel.Quit()

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xlln + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Bingo2018 发表于 2023-11-14 18:18
请教一个问题,有没有快速出来Excel里面的所有图片自动成影印模式,试过用VBA实现不了,不知道大佬有没办法呢
mzq2mmd 发表于 2023-11-14 19:05
ming_2794 发表于 2023-11-14 20:49
azisyy 发表于 2023-11-15 13:20
挺好的,又学会一招,十分感谢楼主。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 20:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表