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

相关推荐

  • 3岁以下婴幼儿健康养育照护指南(试行)

    3岁以下婴幼儿健康养育照护指南(试行) 为贯彻落实《中共中央 国务院关于优化生育政策促进人口长期均衡发展的决定》、《国务院办公厅关于促进3岁以下婴幼儿照护服务发展的指导意见》(国办发〔2019〕15号)和《健康儿童行动提升计划(2021—2025年)》(国卫妇幼发〔2021〕33号),提升儿童健康水平,促进儿童早期发展,加强婴幼儿养育照护指导,强化…

    2022年11月30日
    80400
  • 今天教大家用Excel制作会议席位卡(酒店就是用的这个方法喔)

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

    2022年8月25日
    2.0K00
  • 科学上网,绝不“翻墙”

    什么是网络“翻墙”? 这里“墙”指的是“国家公共网络监控系统”-GFW(The Great Fire Wall of China),俗称中国国家防火墙,“翻墙”又称“破网”,是指通过虚拟专用网络(VPN)技术规避国家网络监管,突破IP封锁、内容过滤、域名劫持、流量限制等,非法访问被国家禁止的境外网站行为。简言之,“翻墙”就是绕过国家网络监管,访问那些被屏蔽的…

    其他 2023年2月7日
    1.3K00
  • Windows电脑设置开机密码后如何自动登录

    在很多情况下,我们都有电脑自动开机、自动进入桌面、定时关机等需求。 笔者现在遇到了一个问题,设置了开机密码,在电脑自动开机后无法自动进入桌面,怎么办? 笔者每天上班的第一件事情就是打开电脑,打开屏幕控制软件,把电脑里的PPT投屏到LED公屏显示器。于是,我每天上班都会开机、开软件;下班了就会关软件、关机。天天重复着这样的工作。 一个伟大的人说过:只要是这种每…

    2023年2月13日
    1.5K00
  • 国产电脑如何安装软件(信创环境)

    Linux操作系统和Windows操作系统不一样,不能双击安装包安装软件。 这里我们介绍dpkg这个命令安装软件,dpkg是Debian的包管理器,因为Ubuntu是Debian的变体,在Ubuntu下也有这个工具。 一、查看操作系统版本 作者演示的电脑操作系统为银河麒麟V10操作系统。 二、安装软件 1、进入安装包所在文件目录(下载文件所在的文件目录),点…

    2022年7月18日
    6.6K00

发表回复

登录后才能评论