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年1月11日 下午4:20
下一篇 2024年11月7日 下午5:14

相关推荐

  • 对县(市)区工作评价的自动打分表

    我们平常的工作中,市级工作人员需要对县(市)区的工作人员的日常工作进行评价打分,考虑到打分必须有所依据,所以花了一个晚上的时间制作了一个自动打分表,主要针对县(市)区工作人员收到市里通知后是否及时反馈,是否能够按时按质完成等因素进行评价打分。 自动打分规则为:收到通知后的反馈时间不能超过24小时,否则扣1分。完成时间必须在要求时间的当天23:59:59前,否…

    2023年2月8日
    47400
  • 第二课:如何安装公文字体

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

    2022年7月21日
    4.1K00
  • 使用iptables配置防火墙规则

    在银河麒麟桌面操作系统V10,如果遇到通过安全中心配置防火墙规则不生效的情况,则可以使用iptables配置防火墙规则。 一、防火墙基础知识 1.什么是防火墙? 防火墙是一种网络安全系统,用于保护计算机网络免受未经授权的访问、攻击和其他安全威胁。它通过监控和控制进出网络的数据流来实现这一目的。防火墙可以是硬件设备、软件程序或两者的结合。 2.iptables…

    2024年11月13日
    2000
  • 生成首个 WPS 加载项

    在本教程中,将创建一个 WPS 加载项,该加载项将: 准备开发环境 新建 WPS 加载项 1、通过npm全局安装wpsjs开发工具包 安装命令:  如果之前已经安装了,可以检查下wpsjs版本。 更新wpsjs的命令为: 2、新建一个WPS加载项:HelloWps 输入命令:  会出现如下图的几个选项: 通过上下方向键可以选择要创建的WP…

    2024年11月12日
    2100
  • 会议座次怎么安排?看这里。

    一个原则:先确定1号位,然后左右依次排开。 注意偶数的情况,1号位只有摆到中间靠右,才能不打破这个原则。

    2022年8月1日
    55100

发表回复

登录后才能评论
微信公众号