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

相关推荐

  • 保留数据盘,重装银河麒麟操作系统

    银河麒麟操作系统支持保留数据盘重装系统。本文主要介绍了在保留数据盘的前提下重装银河麒麟桌面操作系统的操作方法。 一、重装前准备 1、在原来的系统中打开终端,在终端输入lsblk命令查看系统数据盘所在的分区。请记下来,重装系统时需要。 2、准备刻录好的系统启动盘,即U盘启动盘或者光盘启动盘。 二、安装系统 以重装银河麒麟桌面操作系统V10为例,具体操作步骤如下…

    2024年11月13日
    4.5K00
  • 曾被判刑或开除公职的机关事业单位人员可以参加企业职工基本养老保险

    2014年10月1日起,《国务院关于机关事业单位工作人员养老保险制度改革的决定》(国发〔2015〕2号)正式实施。 对按照公务员法管理的单位、参照公务员法管理的机关(单位)、事业单位及其编制内的工作人员,实行社会统筹与个人账户相结合的基本养老保险制度。 基本养老保险费由单位和个人共同负担。单位缴纳基本养老保险费(以下简称单位缴费)的比例为本单位工资总额的20…

    其他 2023年6月9日
    89700
  • 银河麒麟操作系统常用Linux命令

    一、软件包安装命令 表示安装软件包 表示移除软件包 移除软件包时清除配置文件 查询已安装的软件包的状态 二、文件、文件夹命令 (一)文件编辑 Linux系统中广泛使用Vim文本编辑器编辑修改文本。Vim文本编辑器一共有三种模式:普通模式、插入模式、命令模式。只有切换在命令模式下,我们才能保存、退出文件。下面我们将详细介绍如何使用Vim修改文件: 1.进入文件…

    其他 2022年11月30日
    3.0K00
  • (10月6日)致留居凤凰的游客朋友

    亲爱的游客朋友: 非常感谢您在国庆期间来到神秘湘西、天下凤凰旅游。10月3日以来,您穿着夏衣来到凤凰,却因新冠肺炎疫情,凤凰城紧急启动临时全域静默措施而耽误了既定行程,给您带来诸多不便,我们深表歉意。 我们感同身受您的焦虑,理解您归家的心情,但我们必须清醒地认识到,在没有确认您自身安全的情况下,归家后的相聚可能带来疫情传播,我们诚恳地向您建议,把风险留下来,…

    2022年10月7日
    70800
  • 如何渐进式延迟法定退休年龄

    全国人民代表大会常务委员会关于实施渐进式延迟法定退休年龄的决定 (2024年9月13日第十四届全国人民代表大会常务委员会第十一次会议通过) 为了深入贯彻落实党中央关于渐进式延迟法定退休年龄的决策部署,适应我国人口发展新形势,充分开发利用人力资源,根据宪法,第十四届全国人民代表大会常务委员会第十一次会议决定: 一、同步启动延迟男、女职工的法定退休年龄,用十五年…

    2024年9月13日
    1.6K00

发表回复

登录后才能评论