WPS宏编辑器读取身份证信息到电子表格

解决的实际问题

接访时,需要登记来访人的身份证信息,包括:姓名、性别、年龄、住址、身份证号码。在纸质表格中登记完一个人需要几分钟时间,有时候人数较多的时候需要花费更多的时间完成登记。登记完后,因为手写字迹潦草的原因,不便于识别;也不便于统计、检索。

设计这么一个WPS带宏的电子表格,依托身份证阅读器(本文是高拍仪上集成的身份证阅读器),可以实现3秒钟自动读取身份证上的所有信息并输入电子表格中。

开发环境

操作系统:银河麒麟V10

WPS版本:11.8.2.11653(建议使用较新版本)

具体步骤

01 在WPS表格第一个工作表(Sheet1)中设计好表式,如下图所示:

WPS宏编辑器读取身份证信息到电子表格

02 Alt+F11打开WPS宏编辑器,输入以下代码。

/**
 * getJson 解析JSON数据到WPS表格
 */
function getJson()
{
	//设置采集的网址
	const requestURL = "http://127.0.0.1:38088/card=idcard";
	//设置缓存文件路径,不同WPS版本会生成不同的缓存文件夹
	const tmpFile = "/tmp/wps-ht/tmp_05512cae147b468486000a4c73f8a2f4/card=idcard"

	//打开源工作簿
    var sourceWbook = Workbooks.Open(requestURL);
	//选择源工作簿中的工作表
    var sourceWsheet = sourceWbook.Sheets(1);
    
	//复制源工作表中的所有数据,源工作表中的JSON数据默认放在A1单元格
    var jsonString = sourceWsheet.Range("A1").Value2;
    
    //解析JSON数据
    var jsonObject = JSON.parse(jsonString);
    //提取出身份证信息,完成解析
    var obj = jsonObject.IDCardInfo;
    
    //源工作簿已经完成解析,关闭源工作薄
	sourceWbook.Close(false);
	
	//删除缓存文件
	Kill(tmpFile);
    
    //把解析到的身份证信息输入表格B3-I3单元格    
    var newRowIndex = 3;
    var rowRange = 360;
    
    //逐行遍历,在空行填充解析数据
	for(var i=newRowIndex; i<rowRange; i++){
		//仅根据B列单元格(姓名)判断所在行是否为空
	    txt = Range("B"+i).Value2
	    
	    //高拍仪未放入身份证时,obj为空
		if(obj==null){
			MsgBox("高拍仪未放入身份证,请放入身份证后再进行采集!")
			return;
		}
		
		//根据B列判断所在行为空时,填充数据
	    if(txt==null){
	    		//A列生成序号 
			Range("A"+i).Value2 = i-newRowIndex+1
			//把解析到的身份证信息输入表格B到I列 
		    	Range("B"+i).Value2 = obj.name;
			Range("C"+i).Value2 = obj.sex;
			Range("D"+i).Value2 = obj.nation;
			Range("E"+i).Value2 = obj.birthday;
			Range("F"+i).Value2 = obj.address;
			Range("G"+i).Value2 = obj.cardID;
			Range("H"+i).Value2 = obj.issueOrgan;
			Range("I"+i).Value2 = obj.validStart + "-" + obj.validEnd;
			Console.log(obj.name+":信息采集完毕。");
			return;
		}
	}
}

03 把身份证放入高拍仪(身份证阅读器),点击电子表格中“采集身份证信息”即可采集信息。

注意事项:不同的WPS版本会生成不同的缓存文件夹,请自行更改缓存文件夹路径。路径为:/tmp/wps-ht/

(0)
湘西自治州优待证申领工作全面启动
上一篇 2024年10月24日 上午8:19
下一篇 2024年10月28日 上午9:59

相关推荐

  • 州幼儿园2022年秋季学期招生公告

         州幼儿园系湖南省示范性幼儿园,现有文艺路园、高新区园、吉凤仁安园(以下简称“三园”)。根据《州幼儿园2022年秋季学期招生工作方案》,州幼儿园2022年秋季学期招生公告如下。        一、招生计划       2022年秋季学期文艺路园招收小班幼儿100名;高新区…

    其他 2022年11月29日
    1.0K00
  • 事关孩子开学!掌握疫苗接种证明查询新技能

    2022年暑假已经来临,那么离秋季入学也不远了,一年一度的秋季入托入学接种证查验工作也要准备起来了。接种证查验是每年的常规工作,为了不影响孩子顺利入学,暑期就要做好疫苗补种工作。那家长怎么查验自己小朋友有没有漏打呢,开学了又如何获取预防接种查验证明呢? 更多内容,请点击下方链接。

    其他 2022年7月19日
    1.2K00
  • 监控设备分辨率怎么和显示器相匹配?

    木桶效应 在一个监控系统中,最终输出到显示屏的画面效果不仅仅只是由IPC的分辨率决定的,还受到其他不同的因素共同影响。“木桶效应”表示图像清晰度是取决于“木桶”中最低的那块“木板”。而“木桶”主要由四块木板组成,即:摄像头分辨率、录像机性能、录像机输出分辨率、显示器分辨率。这四块板相辅相成,缺一不可,共同决定了画面最终的显示效果。 选择什么分辨率的显示器? …

    2023年2月10日
    2.8K00
  • 今天教大家用Excel制作会议席位卡(酒店就是用的这个方法喔)

    老样子,本文在银河麒麟V10操作系统下,使用WPS 2019演示。 第一步:用尺子量好席位卡的尺寸。常用的尺寸是:长16厘米,宽9.3厘米。 第二步:新建WPS表格,各种调格式。选中A列,设置列宽为16厘米。选中1-100行(假设需要打印100个名字),设置行高9.3厘米。缩放视图为20%或者30%,在视图菜单下设置分页预览,这样一页可以展示更多的内容,方便…

    2022年8月25日
    2.4K00
  • 最简单的共享文件夹配置方法:仅配置smb.conf实现文件共享

    之前写过一篇《银河麒麟搭建Samba服务器共享文件》,配置流程有点多,需要先创建一个共享文件夹。这种方式有一个致命问题,就是无法设置打印机,把扫描文件自动存放到共享文件夹。所以,本文想优化一下,把配置步骤精简为两步,主要通过设置smb主配置文件实现文件共享和打印机扫描文件的功能。 1.创建⽤户和Samba密码 打开命令行终端,复制以下命令,进入root权限。…

    2024年11月21日
    2.2K00

发表回复

登录后才能评论