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

相关推荐

  • 按照官方文档测试通过!在银河麒麟操作系统上安装字体

    操作系统中常见字体文件分为OpenTypeFontdata类型(xxx.otf),TrueTypeFontdata类型(xxx.ttf或xxx.TTF)以及TrueTypeCollection(xxx.ttc)。 TTF是Apple公司和Microsoft公司共同推出的字体文件格式,随着windows的流行,已经变成最常用的一种字体文件表示方式。OTF是TT…

    2024年11月13日
    4.4K00
  • 软件推荐 – 腾讯在线工具箱平台,好用工具一箩筐

    腾讯公司官方出品,万能工具宝藏。 简单介绍一下,主要有这么几类工具: ① 图片类工具 ②文本和语音互转 ③文档转换 ④PDF转换工具 还有其他生活娱乐、视频等类别的工具。 最后上网址 https://tool.browser.qq.com 点击这里 发现更多实用网址

    2023年2月9日
    88900
  • (10月11日)凤凰县新增1例新冠肺炎阳性感染者(第14例)

    红湘西客户端 2022-10-11 15:36:31 凤凰县新冠肺炎疫情防控指挥部 关于新增1例新冠肺炎阳性感染者活动轨迹的通告 ​ 10月11日11时,经复核,我县新增1例新冠肺炎阳性感染者,系10月10日公布感染者李某红的密切接触者,目前已转运至定点救治医院。现将活动轨迹通告如下: 滕某妹,女,63岁,凤凰县阿拉营镇老岩村人。 10月1日-9日…

    其他 2022年10月13日
    75100
  • 第一课:公文基础知识

    在机关事业单位上班,上级政策落实、政令上传下达都依赖于规范化的公文来沟通交流,是所有公务人员必须要掌握的基本技能。 一、常见公文种类 根据层级不同,我们把公文分为上行文、平行文、下行文。 举例: 通知是下行文,发布要求下级机关执行和有关单位周知的事项,包括转发公文。市级要把国家的政策转发到县级,就得给县里发一个通知。 请示是上行文,适用于向上级机关请求指示、…

    2022年7月18日
    2.1K00
  • 如何将多个工作簿合并为一个工作簿

    本文演示如何把三个乡镇的数据合并成一个工作薄。 演示环境是国产电脑麒麟V10操作系统,WPS版本是2019。 三个乡镇的原始数据如下图所示: 合并后的数据如下图所示: 接下来跟着我一步一步操作吧。 1.点击“WPS表格”,新建工作簿。 2.数据/合并表格/合并多个工作簿中同名工作表。如下图所示: 3.添加文件/选中并添加乡镇1、乡镇2、乡镇3等所有需要合并的…

    2022年8月10日
    1.1K00

发表回复

登录后才能评论