wps表格批处理——批量断开链接

wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

昨天有朋友问,如何批量断开wps表格里的外部链接

https://bbs.wps.cn/topic/90113

这里手写了一段ps1脚本,也可以让灵犀claw来写,很准还更完善

$et = New-Object -ComObject ket.application
dir *.xlsx | %{
    $wb = $et.Workbooks.Open($_.FullName)
    $wb.LinkSources(1) | %{
        $_
        $wb.BreakLink($_, 1)
    }
    $wb.Save()
    $wb.Close()
}
$et.Quit()

非常简单,每一句的意思大概如下:

  • 打开ket

  • 循环当前目录里的*.xlsx

  • 打开当前workbook

  • 循环当前wb里的第一类链接LinkSources(1)

  • 输出日志

  • 断开每一个链接

  • 保存

  • 关闭当前wb

  • 关闭ket


为了使用方便,可以在第一行加入注释

#ANSI字符编码&cls&powershell -Version 5.1 -NoLogo -NoProfile -Command "gc -Encoding Oem -ReadCount 0 -LiteralPath '%~f0'|out-string|iex"&pause&exit/b

意思是,可以将当前ps1脚本改为bat批处理,直接双击使用


为了方便指定处理的文件夹,可以类似这个帖子,让灵犀claw弹出文件夹选择框

https://bbs.wps.cn/topic/89917

也可以更方便一点,将批处理加入文件夹右键菜单,类似这个帖子

https://bbs.wps.cn/topic/88363


也就是,按win-r,运行regedit,打开注册表,导航到这里

计算机\HKEY_CLASSES_ROOT\Directory\Background\shell

在shell上右键,新建,项,随便起个名字,比如batxlsx

双击右边的默认值,起个名字比如,批量断开xlsx链接

在batxlsx上右键,新建,项,名叫command

双击右边的默认值,粘贴上面bat脚本的完整路径,如图

以后就可以,打开xlsx所在目录,右键,批量断开xlsx链接

wps表格的大部分操作都可以这样加入批处理

至于日志,现在只是将链接打印到cmd窗口,可以改为增量写入.log文件

另外,有了灵犀claw,写类似的脚本又快又好,没有任何门槛,只要愿意尝试都能飞快上手

最后,一定备份好数据再尝试

海南省
浏览 118
1
6
分享
6 +1
4
1 +1
全部评论 4
 
马成功老师
马成功老师 WPS资深用户Lv.2 潜力创作者KVPWPS函数专家

Lv.2潜力创作者

你的荣誉勋章好少,不公平啊。
·
回复
wils
wilsLv.2 潜力创作者

Lv.2潜力创作者

哈哈,除了那个长期的,我确实没参加其他活动
· 海南省
回复
 
马成功老师
马成功老师 WPS资深用户Lv.2 潜力创作者KVPWPS函数专家

Lv.2潜力创作者

写的真好,写的真实用
·
回复
wils
wilsLv.2 潜力创作者

Lv.2潜力创作者

多谢马老师捧场 我也是拾人牙慧,比如那句注释,是从批处理论坛bathome抄来的,哈哈
· 海南省
回复