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

相关推荐

  • 字符和URL编码转换表

    先来看一个URL链接: http://ip地址/index.php?s=/index/index/name/$%7B@phpinfo()%7D 解析后的地址是: http://ip地址/index.php?s=/index/index/name/${@phpinfo()} 我们通过颜色区分一下,%7B解析后变成{,%7D解析后变成}。

    其他 2023年6月29日
    1.2K00
  • 麒麟V10操作系统有没有好用的截图软件呢?

    答案当然是肯定的啦! 第一步:进入软件商店,搜索并安装“xfce截图”这个软件。 第二步:安装并运行,就是这个样子啦。这里有三种截图方式:整个屏幕截图、当前窗口截图、选择区域截图,其中当前窗口截图可以设置延迟哦,这个功能很好用。 第三步:截完图之后会弹出这个对话框,这个就是该款截图软件的精华所在啦。 一是可以直接保存;二是可以复制 剪切板,然后Ctrl+V粘…

    2022年8月24日
    3.2K00
  • 只有1个孩子或者2个女孩的农村居民开始申领2023年补助了

    2023年度农村部分计划生育家庭奖励扶助对象和计划生育特别扶助申报 一、申请条件 (1)农村部分计划生育家庭奖励扶助(以下简称”农村奖扶”)。 农村奖扶对象,是国家”提倡一对夫妻生育一个子女”期间(1973年1月1日至 2015年12月31日),曾经生育(收养)了子女且同时符合以下基本条例的合法夫妻: 1、本人…

    其他 2023年1月31日
    4.1K00
  • Excel 中的 VLOOKUP 和 INDEX-MATCH 示例

    推荐使用index+match组合函数来查找数据。 也可以尝试老办法vlookup函数,不过这个函数需要注意的地方太多了,容易出错,不推荐新手使用。 VLOOKUP 示例:我们在 Item ID 列中查找文本“a_003”,并希望从 Price 列返回相应的值29.30。 = VLOOKUP ( lookup_value , table_array , co…

    2022年8月23日
    1.4K00
  • 第二课:如何安装公文字体

    从上节课内容我们了解到,公文涉及三类字体:方正小标宋简体/方正小标宋_GBK、楷体_GB2312、仿宋_GB2312。 接下来,我们开始一步一步安装字体。 操作系统环境:国产银河麒麟V10操作系统 第一步:下载公文字体并解压。 第二步:打开系统中的软件商店,搜索“字体管理器”并打开, 下图所示: 点击左下角“齿轮” 图案, 弹出框 选中“安装字体”,选中下载…

    2022年7月21日
    7.1K00

发表回复

登录后才能评论