跳转至

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 文件即可。