中国人寿保险股份有限公司江苏省分公司张福洲获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉中国人寿保险股份有限公司江苏省分公司申请的专利一种使用SQL处理Excel中的数据的方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN121029892B 。
龙图腾网通过国家知识产权局官网在2026-03-10发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202511562857.7,技术领域涉及:G06F16/28;该发明授权一种使用SQL处理Excel中的数据的方法是由张福洲设计研发完成,并于2025-10-30向国家知识产权局提交的专利申请。
本一种使用SQL处理Excel中的数据的方法在说明书摘要公布了:本发明提出了一种使用SQL处理Excel数据的方法。通过接收Excel文件,校验文件类型,创建Excel对象并创建公式计算器。通过遍历Excel中的Sheet对象,将名称以“#”开头的Sheet对象数据转换为适合SQL处理的格式并存储。同时,从名称为“@SQL”的Sheet对象中提取SQL语句,建立结果集名称与SQL语句的对应关系。执行SQL语句后,将结果存储在内存中。然后在Excel中查找标记有自定义数据标签的单元格,将SQL查询结果渲染到这些单元格中,删除以“#”开头的和名称为“@SQL”的Sheet对象,最终生成并返回新的Excel文件。本方法无需专门创建多个sheet来处理数据,节省用户大量的时间和工作量,提高处理效率。而且支持返回SQL处理后的结果给用户,用户在Excel中直观地查看处理结果。
本发明授权一种使用SQL处理Excel中的数据的方法在权利要求书中公布了:1.一种使用SQL处理Excel中的数据的方法,其特征在于,包括以下步骤: S1.接收用户传入的Excel文件,创建成Excel对象;具体包括如下子步骤: S11:接收用户传入的Excel文件; S12:校验Excel文件和类型; S13:将Excel文件创建成文件流对象; S14:将文件流对象创建成缓冲流对象; S15:将缓冲流对象创建成Excel对象; S16:根据Excel对象,创建公式计算器; 所述公式计算器解析Excel单元格中的公式表达式,通过关联Excel对象中的单元格数据完成计算并返回结果; S2.循环遍历Excel对象中的所有Sheet对象,放入名称为sheetMap的Map类型集合中;具体包括如下子步骤: S21:循环遍历Excel对象中的所有Sheet对象; Sheet对象,即工作表,是Excel对象中的一个独立的表格页面,每个工作表有不同的名称,位于Excel对象的底部标签处; S22:将遍历的每一个Sheet对象存入名称为sheetMap的Map类型集合中; 具体的,Map类型集合是一种键值对存储结构,以Sheet对象的名称为键,以Sheet对象为值,存入名称为sheetMap的Map类型集合中; S3.准备待执行SQL处理的数据,放入名称为preparedDataMap的Map类型集合中;具体包括如下子步骤: 进行SQL处理的数据的Sheet对象的名称为以“#”开头的英文,且Sheet对象的第一行为字段名称,其余行为字段值; S31:循环遍历sheetMap中的每一个键值对; S32:循环遍历sheetMap中所有键以“#”开头的Sheet对象的非首行的Row对象,逐个处理Row对象的Cell对象,并获取对应值; S33:根据sheet对象的行列信息构建名称为dataListMap的List类型集合; 以sheetMap的值,即Sheet对象第一行Row对象对应列的Cell对象的值为键,以其他所有行Row对象对应列的Cell对象的值为值,存入名称为dataListMap的List类型集合中,List类型集合的元素为Map; S34:以Sheet对象的名称和dataListMap分别作为键值对,存入名称为preparedDataMap的Map类型集合中; S35:如果sheetMap键值对的键不以“#”开头,则跳过该键值对,继续循环遍历; 名称以“#”开头的sheet对象,代表这些sheet对象中的数据为待执行SQL处理的数据; S4.创建结果集名称和SQL对应关系,放入名称为sqlMap的Map类型集合中;具体包括如下子步骤: S41:循环遍历sheetMap中的每一个键值对; S42:处理sheetMap中键为字符串“@SQL”的值,提取结果集名称和SQL语句并存入名称为sqlMap的Map类型集合中;如果sheetMap的键不是“@SQL”,则跳过该键值对,继续循环遍历; 如果sheetMap键值对的键等于字符串“@SQL”,则循环遍历键值对的值,即Sheet对象,循环遍历Sheet对象的每一个Row对象,循环遍历Row对象的每一个元素Cell对象,根据Cell对象的SQL文本,获得结果集名称和SQL语句,以结果集名称为键,以SQL语句为值,存入名称为sqlMap的Map类型集合中; S5.执行sqlMap中的sql语句,得到结果;具体包括如下子步骤: S51:遍历preparedDataMap,以键作为CTE名称,以值的内容生成select...unionall...语句作为CTE成员,创建CTE部分SQL语句; S52:创建基于内存模式的H2数据库JDBC连接; S53:循环遍历sqlMap中的每一个键值对; S54:将CTE部分SQL语句与SQL语句拼接成完整的查询语句并通过JDBC连接执行得到结果,将结果封装成名称为resultList的List类型集合中; 步骤S54中所述SQL语句即为sqlMap中的键值对的值;所述resultList为元素为Map的List类型集合; S55:以sqlMap中的键值对的键为键,以resultList为值,存入名称为resultDataMap的Map类型集合中; S56:关闭JDBC连接; S6.获取数据标签的Cell对象,存入名称为prepareCells的List类型集合中;具体包括如下子步骤: S61:循环遍历sheetMap中所有键不以“#”开头或键不为字符串“@SQL”的键值对; S62:查找sheetMap中所有键不以“#”开头或键不为字符串“@SQL”的键值对的值中的每一个Row对象的每一个Cell对象为自定义格式的数据标签的Cell对象,并将该Cell对象存入名称为prepareCells的List类型集合中; 所述自定义格式的数据标签,格式为{{结果集名称.字段名称}}; S7.循环遍历prepareCells的List类型集合,将数据渲染到Cell对象中;具体包括如下子步骤: S71:循环遍历prepareCells的List类型集合中的所有Cell对象; S72:从指定Cell对象文本中提取结果集名称和字段名称; 所述指定Cell对象是指循环遍历prepareCells时,每次处理的当前Cell对象; S73:根据提取的结果集名称和字段名称从resultDataMap获取对应要渲染的数据并存入名称为renderDataList的元素为Object的List类型集合中; S74:获取指定Cell对象的行序号和列序号; 确定指定Cell对象在Excel表格中的具体位置,即行序号和列序号; S75:根据指定Cell对象的行序号、列序号和renderDataList的元素数量,循环遍历指定Cell对象并获取renderDataList指定位置的Object元素; S76:判断Object元素类型并设置指定Cell对象内容; 判断出Object元素的类型,然后根据Object元素的类型将Object元素强制转换为对应类型的数据,并设置所述指定Cell对象的内容为该对应类型的数据; S8.删除Excel对象中的名称为“@SQL”或以“#”开头的sheet对象,生成Excel文件,并返回结果;具体包括如下子步骤: S81:遍历Excel对象中的每一个Sheet对象,如果该sheet对象的名称为“@SQL”或以“#”开头,则从Excel对象中删除该sheet对象; S82:将处理后的Excel对象转换为字节流或文件形式,并关闭Excel对象; S83:将Excel文件返回给用户。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人中国人寿保险股份有限公司江苏省分公司,其通讯地址为:211000 江苏省南京市中山东路298号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
以上内容由龙图腾AI智能生成。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

皖公网安备 34010402703815号
请提出您的宝贵建议,有机会获取IP积分或其他奖励