WPS宏编辑器读取身份证信息到电子表格

操作系统:银河麒麟V10

WPS版本:11.8.2.11653(建议使用较新版本)

注意事项:不同的WPS版本会生成不同的缓存文件夹,请自行更改缓存文件夹路径。路径为:/tmp/wps-ht/

在WPS表格第一个工作表(Sheet1)中设计好表式,如下图所示:

WPS宏编辑器读取身份证信息到电子表格

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;
		}
	}
}

风起于青苹之末的头像风起于青苹之末
上一篇 2024年1月11日 下午4:20
下一篇 2022年7月18日

相关推荐

  • 银河麒麟桌面操作系统V10(ARM)【清除桌面密钥环】操作指南

    密钥环是一个以加密方式存储你的登录信息的本地数据库。各种桌面应用(如浏览器、电子邮件客户端等)使用密钥环来安全地存储并管理你的登录凭证、机密、密码、证书或密钥。对于那些需要检索存储在密钥环中的信息的应用程序,需要解锁该密钥环。密钥环对应的命令是seahorse。 问题概述 在使用银河麒麟桌面操作系统的过程中,偶尔会出现密钥环弹窗提示,需输入密码,但并未设置过…

    2024年10月10日
    2630
  • Excel 中的 VLOOKUP 和 INDEX-MATCH 示例

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

    2022年8月23日
    5120
  • 银河麒麟操作系统常用Linux命令

    dpkg是Debian的包管理器,因为Ubuntu是Debian的变体,在Ubuntu下也有这个工具。 一、几个常用的命令 dpkg -i package-file 表示安装软件包 dpkg -r package 表示移除软件包 dpkg -P package 移除软件包时清除配置文件 dpkg-query -s packagecpu-name 查询已安装的…

  • 麒麟系统安全机制

    解决问题:kylin麒麟系统中如若出现root用户登录下,也执行不了可执行文件,文件权限有可执行权限,但是报权限不足,可以看看这边文章,需要修改KYSEC,对应第三部分。 麒麟系统为什么称为国内最安全的Linux系统?秘密就在于KYSEC,麒麟系统安全机制。一般情况下Linux下默认的接入控制是DAC,其特点是资源的拥有者可以对他进行任何操作(读、写、执行)…

    2022年11月30日
    1.6K0
  • Word批量生成各种通知证明,喝杯茶就能完成所有工作

    人多、事多、麻烦多,时间不够用怎么办?晚上要约会,不能按时下班怎么办?先发两句牢骚,然后接着干。你干死干活,中午晚上加班。我泡茶喝水,上午下午聊天。 如果你需要给200个人出具书面通知,你准备一份一份复制粘贴吗?如果你需要打印200份座次姓名牌,你准备一个名字一个名字打印吗?如果你需要生成10套试卷,你准备从题库里面一个题目一个题目筛选出来吗?同志们,遇到重…

    2022年8月5日
    9530