首页 > 其他分享 >WPS JS宏删除、导入、导出Sheet里的图片

WPS JS宏删除、导入、导出Sheet里的图片

时间:2024-06-09 17:32:16浏览次数:19  
标签:Sheet app pic WPS 图片 文件夹 var JS folderName

今天分享WPS表格中的图片操作方法,三个问题:1.如何删除表中所有图片;2.如何将表中所有图片批量导出到指定文件夹并重新命名;3.如何将指定路径下的图片批量导入表中,并置于何时的位置。

 一、如何删除表中所有图片

function deletePic(){
	// 获取当前Sheet表对象
	var app = Application.Application,
		acSh = app.ActiveSheet;
	// 循环遍历当前Sheet表中的所有图形
	for (let pic of acSh.Shapes){
		// 如果当前为"图片"、"==13",执行删除操作
		if (pic.Type == msoPicture){
            // Shape.TopLeftCell,代表位于对象左上角下方的单元格
			var r = pic.TopLeftCell.Row,
				c = pic.TopLeftCell.Column;
			
			pic.Delete();
			Console.log(`${r}行${c}列图片删除成功@SMFY`);
		}
	}
}

运行结果如下:

处理前:

处理后:


二、如何将表中所有图片批量导出到指定文件夹并重新命名

function SaveAsPic(){
	var app = Application.Application,
		acSh = app.ActiveSheet;
	
	// 输入框,用来自定义存图文件夹的名称
	var folderName = app.InputBox("Enter a folder name to save picture"),
		reg = new RegExp('[\\\\/:*?\"<>|]');
	
	// 如果文件夹的名称不规范,给出错误提示
	if(folderName == "" || folderName == false || reg.test(folderName) == true){
		MsgBox("1.文件名不能为空\n\n2.上传的文件名不能包含【\\\\/:*?\"<>|】这些非法字符\n\n建议:修改后重新上传!",jsCritical,"错误提示:")
	}
	else{
		// 新建一个文件夹用来存导出的图片
		var res = NewFolder(ThisWorkbook.Path, folderName);
		Console.log(res); // 新建文件夹结果
		
		for (let pic of acSh.Shapes){
			if (pic.Type == msoPicture){
				var r = pic.TopLeftCell.Row,
					c = pic.TopLeftCell.Column,
					picName = `${r}行${c}列${new Date().getTime()}`;// 注意重名问题,重名会被覆盖
				var picPathName = `${ThisWorkbook.Path}\\${folderName}\\${picName}.jpg`;
				
				pic.Copy();
				pic.SaveAsPicture(picPathName);
			}
		}
	}
}

NewFolder()函数传送门:新建文件夹

运行结果如下:


三、如何将指定路径下的图片批量导入表中,并置于何时的位置

占位,//TODO

标签:Sheet,app,pic,WPS,图片,文件夹,var,JS,folderName
From: https://blog.csdn.net/RAN__CSDN/article/details/139536723

相关文章

  • VS Code 中怎么运行js代码
    在VSCode中运行JavaScript代码可以通过以下步骤实现:1.安装Node.js:首先确保你的电脑安装了Node.js。你可以在官方网站(https://nodejs.org/)上下载适用于你操作系统的安装包,然后按照指示进行安装。2.打开VSCode:打开VSCode编辑器,确保你已经安装了VSCode的JavaScript插件。......
  • JSON文件存储
    JSON文件存储JSON,全称为JavaScriptObjectNotation,也就是JavaScript对象标记,通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。对象和数组在JavaScript语言中,一切皆为对象。因此任何支持的类型都可以通过JSON......
  • JS事件循环
    文章目录前言一、浏览器的进程与线程二、渲染主线程三、关于异步总结前言事件循环,不管是在面试还是在工作中都至关重要,属于学前端就绕不开的一个知识点,本篇文章将讲解JS事件循环的全部流程。文章借鉴了渡一大师课中关于事件循环的课程思路,对此表示感谢。一、浏览......
  • 第三章:Three.js 基本概念
    本章将介绍Three.js中的核心概念,包括场景(Scene)、相机(Camera)、渲染器(Renderer)、几何体(Geometry)、材质(Material)和网格(Mesh)。这些概念是理解和使用Three.js的基础。3.1场景(Scene)场景是Three.js中所有对象的容器。你可以将几何体、灯光、相机等对象添加到场景中。3......
  • 第四章 Three.js 绘制基本几何体
    本章将介绍如何使用Three.js绘制各种基本几何体,包括立方体、球体、圆柱体、圆锥体、平面和环形几何体。我们将详细讲解每种几何体的创建方法,并通过示例代码展示如何将它们添加到场景中。4.1立方体(BoxGeometry)立方体是最基础的几何体之一。Three.js提供了THREE.Box......
  • 【Java】JDBC+Servlet+JSP实现搜索数据和页面数据呈现
    目录1.功能介绍2.实现流程3.项目环境4.相关代码4.1 Maven配置4.2SQL语句4.3 Java代码4.4 HTML代码4.5 JSP代码5.结果展示(原创文章,转载请注明出处)博主是计算机专业大学生,不定期更新原创优质文章,感兴趣的小伙伴可以关注博主主页支持一下,您的每一个点赞、......
  • 如何利用JS设置“背景-问题-方案-评价-参考”的前置符号?
    背景在如何通过javascript自动增加markdownh1的文本内容?中已经有了插入文本的脚本。但是我希望“背景”“问题”这些标题显示不同的前置符号来适应不同的内容主题。问题怎么分别设置h1在不同文本内容情形下的前置符号?方案在原有的基础上稍加修改,增加一些if语句即可。<scri......
  • [Java] Mybatis向Mysql插入主副表JSON数据
    ......
  • 【计算机毕业设计】ssm711冀中工程技师校园网站设计与实现+jsp
    使用旧方法对冀中工程技师学院网站的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在冀中工程技师学院网站的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的冀中工程技师学院网站对字典管理、......
  • ​【JS重点知识04】JS执行机制(重点面试题)
     学前案例:console.log(111);setTimeout(function(){console.log(222);},1000)console.log(333);//输出结果:1111333222console.log(111);setTimeout(function(){console.log(222);},0)console.log(333);//输出结果:1113332221JS两种运行方式同......