【Excel】【VB和JS】表格内容姓名、卡号、身份证敏感信息转换为图片打印

 VB代码:

Function ConvertCellToImageAndPlace(n As Long, m As Long)Dim sourceCell As RangeSet sourceCell = Sheets("Sheet2").Cells(n, m)sourceCell.CopyPicture Appearance:=xlScreen, Format:=xlPictureDim targetCell As RangeSet targetCell = Sheets("Sheet3").Cells(n, m)Sheets("Sheet3").Paste targetCellDim shp As ShapeSet shp = Sheets("Sheet3").Shapes(Sheets("Sheet3").Shapes.Count)shp.Left = targetCell.Leftshp.Top = targetCell.Topshp.Width = targetCell.Widthshp.Height = targetCell.Height
End Function
Function ClearSheet3Completely()Sheets("Sheet3").Cells.ClearContents '清空单元格内容Sheets("Sheet3").Cells.ClearFormats '清空单元格格式Dim shp As ShapeFor Each shp In Sheets("Sheet3").Shapesshp.DeleteNext shp
End Function
Sub AutoPrintPicture()ClearSheet3CompletelyFor i = 1 To 10Sheets("Sheet2").Cells(10, 3) = i + 201ConvertCellToImageAndPlace 10, 3ConvertCellToImageAndPlace 10, 2ConvertCellToImageAndPlace 10 + 1, 2ConvertCellToImageAndPlace 10 + 2, 2Sheets("Sheet3").PrintOutClearSheet3CompletelyNext iEnd Sub

 JS代码:

function convertCellToImageAndPlace(row, col) {// 获取源单元格let sourceCell = Sheets("Sheet2").Cells(row, col);// 复制为图片,明确参数类型为数字,根据 WPS 的文档可能需要使用特定的数值代表外观sourceCell.CopyPicture();// 获取目标单元格let targetCell = Sheets("Sheet3").Cells(row, col);// 粘贴到目标单元格Sheets("Sheet3").Paste(targetCell);
}function clearSheet3Completely(){// 获取当前Sheet表对象var app = Application.Application,acSh = app.Sheets("Sheet3");// 循环遍历当前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 autoPrintPicture() {//clearSheet3Completely();for (let i = 1; i <= 3;i++) {Sheets("Sheet2").Cells(10, 3).Value2 = i + 1;convertCellToImageAndPlace(10, 3);convertCellToImageAndPlace(10, 2);convertCellToImageAndPlace(11, 2);convertCellToImageAndPlace(12, 2);Sheets("Sheet3").PrintOut();clearSheet3Completely();}
}

总结:

convertCellToImageAndPlace函数:

  • 从 “Sheet2” 工作表的指定单元格(由参数n和m确定)复制内容为图片。
  • 将图片粘贴到 “Sheet3” 工作表的对应单元格。
  • 获取 “Sheet3” 工作表中刚刚粘贴的图片对应的形状对象(即最后一个形状)。
  • 如果形状对象存在,将其位置和大小设置为目标单元格的位置和大小,并返回该形状对象。

clearSheet3Completely函数:

  • 清空 “Sheet3” 工作表的所有单元格内容。
  • 清空 “Sheet3” 工作表的所有单元格格式。
  • 遍历并删除 “Sheet3” 工作表中的所有形状。

autoPrintPicture函数:

  • 首先调用clearSheet3Completely函数清空 “Sheet3” 工作表。
  • 循环 10 次,每次循环: 在 “Sheet2” 工作表的特定单元格(第 10 行第 3 列)设置一个值,该值为当前循环次数加 201。
  • 分别调用convertCellToImageAndPlace函数将 “Sheet2” 工作表的特定四个位置(10,3)、(10,2)、(11,2)、(12,2)的单元格内容复制为图片并放置在 “Sheet3” 工作表的对应位置,同时获取对应的形状对象。 打印 “Sheet3” 工作表。
  • 再次调用clearSheet3Completely函数清空 “Sheet3” 工作表,为下一次循环做准备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java配置 Redis 连接互斥锁或队列预先加载缓存

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

【HuggingFace 如何上传数据集 (2) 】国内网络-稳定上传图片、文本等各种格式的数据

【HuggingFace 下载】diffusers 中的特定模型下载&#xff0c;access token 使用方法总结【HuggingFace 下载中断】Git LFS 如何下载指定文件、单个文件夹&#xff1f;【HuggingFace 如何上传数据集】快速上传图片、文本等各种格式的数据 上文的方法因为是 https 协议&#xf…

1024-过去一年的总结

目录 前言 (10月-24.01)故事的开始 &#xff08;2月-7月&#xff09;漫长的学习与探索 &#xff08;8月-现在&#xff09;低谷期 自我审视 前言 1024在即,就借此机会讲一讲过去一年的经历&#xff0c;也算是全方位总结一下自己 (10月-24.01)故事的开始 那就从去年大一入学…

【C++】STL——priority_queue优先级队列

目录 前言priority_queue的使用简单使用在OJ中的使用 priority_queue的模拟实现基本功能仿函数在这里插入图片描述 前言 上一节我们说了stack和queue这两种容器适配器&#xff0c;而priority_queue&#xff08;优先级队列&#xff09;同样也是属于容器适配器&#xff0c;它会优…

【Fargo】9:模拟图片采集的内存泄漏std::bad_alloc

std::bad_alloc 崩溃。这样的内存分配会导致内存耗尽 is simulating an image of size 640x480 with 3 bytes per pixel, resulting in an allocation of approximately 921,600 bytes (or around 900 KB) for each image. The error you’re encountering (std::bad_alloc) ty…

Java 多线程(四)—— 线程安全 与 volatile 与 单例模式

什么是线程安全 在进行多线程编程的时候&#xff0c;当我们编写出来的多线程的代码运行结果不符合我们的预期的时候&#xff0c;这时候就是 bug&#xff0c;这种 bug 是由于多线程的问题而产生出来的 bug 我们称之为 线程安全问题 当我们编写出来的多线程代码运行之后的结果符…

学习文档(5)

Redis应用 目录 Redis应用 Redis 除了做缓存&#xff0c;还能做什么&#xff1f; Redis 可以做消息队列么&#xff1f; Redis 可以做搜索引擎么&#xff1f; 如何基于 Redis 实现延时任务&#xff1f; Redis 除了做缓存&#xff0c;还能做什么&#xff1f; 分布式锁&…

三周精通FastAPI:5 查询参数和字符串校验

FastAPI手册&#xff1a;https://fastapi.tiangolo.com/zh/tutorial/query-params-str-validations/ 查询参数和字符串校验 FastAPI 允许你为参数声明额外的信息和校验。让我们以下面的应用程序为例&#xff1a; from fastapi import FastAPIapp FastAPI()app.get("/it…

基于springboot+thymeleaf+springsecurity搭建一套web小案例

一、前言 本案例中的源代码已上传到资源库&#xff0c;可自行下载&#xff0c;传送阵 https://download.csdn.net/download/qq_36260963/89906196 Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的&#xff0c;使用它可以做到专注于Spring应用的开发&#x…

git clone 鉴权失败

git clone 鉴权失败问题 1. 问题描述2. 解决方法 1. 问题描述 使用git clone自己的代码报如下错误&#xff1a; 正克隆到 xxx... Username for https://github.com: Password for https://xxxgithub.com: remote: Support for password authentication was removed on Augu…

RAG流程的实现与改进

一、 RAG流程图 数据入库&#xff1a;读取本地数据并切成小块&#xff0c;并把这些小块经过编码embedding后&#xff0c;存储在一个向量数据库中&#xff08;下图1——6步&#xff09;&#xff1b;相关性检索&#xff1a;用户提出问题&#xff0c;问题经过编码&#xff0c;再在…

Vue项目中实现拖拽上传附件:原生JS与Element UI组件方法对比

在现代化的Web应用中&#xff0c;文件上传是一个基本功能。随着技术的发展&#xff0c;拖拽上传已经成为提升用户体验的一个重要特性。在Vue项目中&#xff0c;我们可以通过原生JavaScript或使用Element UI组件来实现这一功能。下面我们将分别介绍这两种方法&#xff0c;并对比…

吴恩达深度学习笔记(6)

正交化 为了提高算法准确率&#xff0c;我们想到的方法 收集更多的训练数据增强样本多样性使用梯度下降将算法使算法训练时间更长换一种优化算法更复杂或者更简单的神经网络利用dropout 或者L2正则化改变网络框架更换激活函数改变隐藏单元个数 为了使有监督机制的学习系统良…

vue使用jquery的ajax,页面跳转

一、引入jquery依赖 打开终端更新npm npm install -g npm 更新完后引入输入npm install jquery 加载完后 在最外层的package.json文件中加入以下代码 配置好后导入jquery 设置变量用于接收服务器传输的数据 定义ajax申请数据 服务器的Controller层传输数据 &#xff08;…

【VUE小型网站开发】初始环境搭建

1. 初始化VUE项目 1.1 创建vue项目 1.2 删除多余的界面 根据自己情况删除红框内的文件 清理app页面代码 1.3 引入vue-router 1.3.1 下载vue-router npm install vue-router1.3.2 配置vue-router 在 main.js 或 main.ts 中引入 vue-router import ./assets/main.css im…

Android 图片相识度比较(pHash)

概述 在 Android 中&#xff0c;要比对两张 Bitmap 图片的相似度&#xff0c;常见的方法有基于像素差异、直方图比较、或者使用一些更高级的算法如 SSIM&#xff08;结构相似性&#xff09;和感知哈希&#xff08;pHash&#xff09;。 1. 基于像素的差异比较 可以逐像素比较…

基于MATLAB车牌识别系统设计

MATLAB车牌识别系统设计 实践目的 车牌是一辆汽车独一无二的信息&#xff0c;因此&#xff0c;对车辆牌照的识别技术可以作为 辨识一辆车最为有效的方法。随着ITS(智能交通系统)的高速发展&#xff0c;对车牌识别技术的研究也随之发展。从根本上讲&#xff0c;牌照识别应用了…

中缀表达式转后缀表达式(逆波兰表达式)及如何计算后缀表达式

目录 中缀、后缀表达式简介 中缀转后缀的规则 模拟中缀转后缀 中缀转后缀代码 后缀表达式求值 后缀表达式求值代码 Leetcode相关题目 中缀、后缀表达式简介 首先说说什么是中缀表达式&#xff0c;中缀表达式中&#xff0c;操作符是以中缀形式处于操作数的中间。例如&…

Linux安装Anaconda和Pytorch

又到了一年一度换环境、换服务器不断折腾的时节了&#xff0c;一通折腾后&#xff0c;重新启动遂做记录。 1. Linux安装Anaconda 1.1 离线安装模式 进入官网https://www.anaconda.com/download/success&#xff0c;如图所示&#xff1a; 选择版本进行下载即可。 1.2 在线w…

[Linux网络编程]03-TCP协议

一.TCP协议数据通信的过程 TCP数据报如下&#xff0c;数据报中的标志位双端通信的关键。 三次握手: 1.客户端向服务端发送SYN标志位&#xff0c;请求建立连接&#xff0c;同时发送空包 2.服务端向客户端回发ACK标志位(即确认标志位&#xff0c;任何一端发送数据后都需要另一端…