WPS
1 常用宏命令
1.1 删除 docx 文档中所有图片
/**
* 批量删除文档中所有图片的 JS 宏
*/
function DeleteAllImages() {
// 1. 删除嵌入型图片 (InlineShapes)
let inlineShapes = ActiveDocument.InlineShapes;
for (let i = inlineShapes.Count; i >= 1; i--) {
inlineShapes.Item(i).Delete();
}
// 2. 删除浮动型图片/形状 (Shapes)
let shapes = ActiveDocument.Shapes;
for (let i = shapes.Count; i >= 1; i--) {
shapes.Item(i).Delete();
}
console.log("所有图片已清理完毕。");
}
1.2 导出文档所有图片到同名目录
/**
* 批量导出文档图片并保存到同名文件夹(修正版)
*/
function ExportImagesToFolder() {
let doc = ActiveDocument;
// 1. 检查文档是否已保存
if (doc.Path === "") {
alert("请先保存当前文档,以便确定图片存放的位置。");
return;
}
// 2. 获取文档基础信息
let docFullName = doc.Name;
let docName = docFullName.substring(0, docFullName.lastIndexOf("."));
let docPath = doc.Path;
let separator = "\\";
let targetFolder = docPath + separator + docName;
// 3. 使用原生 FileSystem 对象创建文件夹
// 解决了 ActiveXObject 未定义的问题
try {
if (!FileSystem.Exists(targetFolder)) {
FileSystem.Mkdir(targetFolder);
}
} catch (err) {
alert("创建文件夹失败,请检查权限或路径。");
return;
}
let count = 0;
// 4. 处理嵌入型图片 (InlineShapes)
let inlineShapes = doc.InlineShapes;
for (let i = 1; i <= inlineShapes.Count; i++) {
let ishape = inlineShapes.Item(i);
// 类型判断:3 为图片, 13 为链接图片
if (ishape.Type == 3 || ishape.Type == 13) {
count++;
let savePath = targetFolder + separator + docName + "_" + count + ".jpg";
ishape.SaveAsPicture(savePath);
}
}
// 5. 处理浮动型图片 (Shapes)
let shapes = doc.Shapes;
for (let i = 1; i <= shapes.Count; i++) {
let shape = shapes.Item(i);
// 类型判断:13 为 msoPicture
if (shape.Type == 13) {
count++;
let savePath = targetFolder + separator + docName + "_" + count + ".jpg";
shape.SaveAsPicture(savePath);
}
}
// 6. 提示结果
if (count > 0) {
alert("导出成功!\n共保存了 " + count + " 张图片到文件夹:\n" + targetFolder);
} else {
alert("文档中未检测到可导出的图片。");
}
}
2 宏的使用经验
开启WPS宏编辑器
- 打开 WPS 文档。
- 工具 > 开发工具 > 切换到JS环境 > WPS宏编辑器
- 在“WPS宏编辑器”中,Project > 代码 > Module1 中,右侧的“Application”中输入你的代码
- 将以下代码粘贴进去
手动导出与导入(最灵活)
如果你只想偶尔在其他文档中使用,最直接的方法是利用宏编辑器的导出功能。
1. 导出:在“WPS 宏编辑器”中,右键点击你写的模块(如 Module1),选择 “导出文件”。这会生成一个 .js 后缀的文件。
2. 导入:在新的文档中打开宏编辑器,右键点击“Project”,选择 “导入文件”,加载刚才保存的 .js 文件即可。