CN107168695B - 一种excel数据解析方法及*** - Google Patents
一种excel数据解析方法及*** Download PDFInfo
- Publication number
- CN107168695B CN107168695B CN201710253333.9A CN201710253333A CN107168695B CN 107168695 B CN107168695 B CN 107168695B CN 201710253333 A CN201710253333 A CN 201710253333A CN 107168695 B CN107168695 B CN 107168695B
- Authority
- CN
- China
- Prior art keywords
- data
- excel
- java
- file
- workbook
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种excel数据解析方法及***,该方法包括:将excel文件转换成工作簿实例workbook;读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;根据所述配置信息将工作簿实例workbook解析成java数据,并将所述java数据封装到javabean集合中;将所述javabean集合保存至database数据库。本发明为各个行业领域提供Excel文档解析服务,降低开发成本,提高开发效率。开发人员只需要编写简单的xml配置文件即可实现Excel文档的解析,将数据保存至软件***中。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种excel数据解析方法及***。
背景技术
随着软件技术的发展,各个行业对软件的需求直线增长,软件后台需要处理大量数据,Excel是一款功能强大的数据处理软件,但由于excel文件不能直接被其他软件***操作,因此无法将Excel文件中的数据录入到软件***中。
发明内容
本发明的目的在于为各个行业领域提供Excel文档解析服务,降低开发成本,提高开发效率。开发人员只需要编写简单的xml配置文件即可实现Excel文档的解析,将数据保存至软件***中。
本发明解决上述技术问题的技术方案如下:一种excel数据解析方法,包括以下步骤:
步骤1、将excel文件转换成工作簿实例workbook;
步骤2、读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;
步骤3、根据所述配置信息将所述工作簿实例workbook解析成java数据,并将所述java数据封装到javabean集合中;
步骤4、将所述javabean集合保存至database数据库。
本发明的有益效果是:将excel文件转换成可操作的workbook实例,其中包含了excel中填写的数据,进一步,预先在配置文件中对数据格式进行配置,读取其中的配置信息后,即可根据配置信息对workbook中的数据进行解析,最后封装在javabean中,便于写入数据库等存储设备中,这样开发人员只需要编写简单的xml等配置文件即可实现excel文档的解析,并在软件***中进行操作使用解析后的数据,从而降低开发成本,提高开发效率。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,在所述步骤1中,使用POI组件将excel文件转换成工作簿实例workbook。
采用上述进一步方案的有益效果是,POI组件能够自动匹配不同的excel文件格式,从而满足不同的业务需求。
进一步,所述步骤3具体包括:
步骤3.1、以配置文件中定义的sheet页和开始行号为起始位置,依次读取行数据;
步骤3.2、根据配置文件中定义的单元格属性对所述行数据进行处理,获得解析后的java数据;
步骤3.3、调用set赋值方法将所述java数据封装到指定的javabean集合中。
采用上述进一步方案的有益效果是,首先通过sheet页和开始行号对需要解析的数据进行定位,然后依次按照单元格属性对数据进行解析,最后将解析后的数据进行封装
进一步,所述单元格属性包括:单元格类型、对应的bean节点的属性名和校验规则。
进一步,所述校验规则包括非空数据校验和/或正则校验。
为实现上述发明目的,本发明还提供一种excel数据解析***,包括数据转换单元、配置读取单元、数据解析单元和数据保存单元;
数据转换单元,用于将excel文件转换成工作簿实例workbook;
配置读取单元,用于读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;
数据解析单元,用于根据所述配置信息将所述工作簿实例workbook解析成java数据,并将所述java数据封装到javabean集合中;
数据保存单元,用于将所述javabean集合保存至database数据库。
本发明的有益效果是:为各个行业领域提供Excel文档解析服务,降低开发成本,提高开发效率。开发人员只需要编写简单的xml配置文件即可实现Excel文档的解析,将数据保存至软件***中。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,数据转换单元使用POI组件将excel文件转换成工作簿实例workbook。
进一步,所述数据解析单元包括行数据读取子单元、行数据处理子单元和封装子单元;
所述行数据读取子单元,用于以配置文件中定义的sheet页和开始行号为起始位置,依次读取行数据;
所述行数据处理子单元,用于根据配置文件中定义的单元格属性对所述行数据进行处理,获得解析后的java数据;
所述封装子单元,用于调用set赋值方法将所述java数据封装到指定的javabean集合中。
进一步,所述单元格属性包括:单元格类型、对应的bean节点的属性名和校验规则。
进一步,所述校验规则包括非空数据校验和/或正则校验。
附图说明
图1为本发明实施例提供的一种Excel数据解析方法的流程图;
图2为本发明实施例提供的一种excel数据解析方法中步骤103的流程图;
图3为本发明实施例提供的一种excel数据解析***的结构框图;
图4为本发明实施例提供的数据解析单元的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明提供一种excel数据解析方法100,包括以下步骤:
101、将excel文件转换成工作簿实例workbook;
102、读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;
103、根据所述配置信息将所述工作簿实例workbook解析成java数据,并将所述java数据封装到javabean集合中;
104、将所述javabean集合保存至database数据库。
具体的,由于软件不能直接操作Excel文件,这里先要将Excel文件转换为可操作的workbook实例,另外,还需要编写xml配置文件来获取workbook实例的配置信息。java数据指的是java语言中处理的数据,javabean是一种java语言写成的可重用组件。
该方法可以为各个行业领域提供Excel文档解析服务,降低开发成本,提高开发效率。开发人员只需要编写简单的xml配置文件即可实现Excel文档的解析。
可选地,在该实施例中,使用POI组件将excel文件转换成工作簿实例workbook。
具体的,POI是Apache软件基金会的开放源码函式库,POI提供API(ApplicationProgram Interface,应用程序接口)给Java程序对Microsoft Office格式档案读和写的功能。POI组件功能强大,同时支持office2003、office2010等格式的Excel文档解析,从而满足不同的业务需求。
可选地,在该实施例中,如图2所示,步骤103具体包括:
201、以配置文件中定义的sheet页和开始行号为起始位置,依次读取行数据;
202、根据配置文件中定义的单元格属性对所述行数据进行处理,获得解析后的java数据;
203、调用set赋值方法将所述java数据封装到指定的javabean集合中。
可选地,在该实施例中,所述单元格属性包括:单元格类型、对应的bean节点的属性名和校验规则。
可选地,在该实施例中,所述校验规则包括非空数据校验和/或正则校验。
具体的,下面是一个编写好的xml示例,其中bean节点的class属性指定需要将Excel数据映射到某个javabean对象,sheet节点指定要解析的数据在第几个sheet页,row节点的start属性指定从第几行开始读取数据(序号从0开始),接下来就是一组property节点,示例中共有5个property节点,以第一个property节点为例:第0个单元格对应phoneNum属性,并且对该单元进行非空数据校验,即该单元必须有数据,同时要符合^\d{11}$的正则校验规则,即11位数字,另外还指定了该单元格的类型是CELL_TYPE_STRING类型。
示例代码如下:
本发明还提供一种Excel数据解析***300,如图3所示,该***300包括数据转换单元301、配置读取单元302、数据解析单元303和数据保存单元304;
数据转换单元301,用于将excel文件转换成工作簿实例workbook;
配置读取单元302,用于读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;
数据解析单元303,用于根据所述配置信息将所述工作簿实例workbook解析成java数据,并将所述java数据封装到javabean集合中;
数据保存单元304,用于将所述javabean集合保存至database数据库。
具体的,由于软件不能直接操作Excel文件,这里先要将Excel文件转换为可操作的workbook实例,另外,还需要编写xml配置文件来获取workbook实例的配置信息。java数据指的是java语言中处理的数据,javabean是一种java语言写成的可重用组件。
该***可以为各个行业领域提供Excel文档解析服务,降低开发成本,提高开发效率。开发人员只需要编写简单的xml配置文件即可实现Excel文档的解析。
可选地,在该实施例中,所述数据转换单元使用POI组件将excel文件转换成工作簿实例workbook。
具体的,POI是Apache软件基金会的开放源码函式库,POI提供API(ApplicationProgram Interface,应用程序接口)给Java程序对Microsoft Office格式档案读和写的功能。POI组件功能强大,同时支持office2003、office2010等格式的Excel文档解析,从而满足不同的业务需求。
可选地,在该实施例中,如图4所示,所述数据解析单元303包括行数据读取子单元401、行数据处理子单元402和封装子单元403;
所述行数据读取子单元401,用于以配置文件中定义的sheet页和开始行号为起始位置,依次读取行数据;
所述行数据处理子单元402,用于根据配置文件中定义的单元格属性对所述行数据进行处理,获得解析后的java数据;
所述封装子单元403,用于调用set赋值方法将所述java数据封装到指定的javabean集合中。
可选地,在该实施例中,所述单元格属性包括:单元格类型、对应的bean节点的属性名和校验规则。
可选地,在该实施例中,所述校验规则包括非空数据校验和/或正则校验。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种excel数据解析方法,其特征在于,包括以下步骤:
步骤1、将excel文件转换成工作簿实例workbook;
步骤2、读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;
步骤3、根据所述配置信息将所述工作簿实例workbook解析成java数据,并将所述java数据封装到javabean集合中;
所述步骤3具体包括:
步骤3.1、以配置文件中定义的sheet页和开始行号为起始位置,依次读取行数据;
步骤3.2、根据配置文件中定义的单元格属性对所述行数据进行处理,获得解析后的java数据;
步骤3.3、调用set赋值方法将所述java数据封装到指定的javabean集合中;
步骤4、将所述javabean集合保存至database数据库。
2.根据权利要求1所述的excel数据解析方法,其特征在于,在所述步骤1中,使用POI组件将excel文件转换成工作簿实例workbook。
3.根据权利要求1所述的excel数据解析方法,其特征在于,所述单元格属性包括:单元格类型、对应的bean节点的属性名和校验规则。
4.根据权利要求3所述的excel数据解析方法,其特征在于,所述校验规则包括非空数据校验和/或正则校验。
5.一种excel数据解析***,其特征在于,包括数据转换单元、配置读取单元、数据解析单元和数据保存单元;
数据转换单元,用于将excel文件转换成workbook实例;
配置读取单元,用于读取所述excel文件的配置文件并保存,所述配置文件包含所述excel文件的配置信息;
数据解析单元,用于根据所述配置信息将所述workbook实例解析成java数据,并将所述java数据封装到javabean集合中;
所述数据解析单元包括行数据读取子单元、行数据处理子单元和封装子单元;
所述行数据读取子单元,用于以配置文件中定义的sheet页和开始行号为起始位置,依次读取行数据;
所述行数据处理子单元,用于根据配置文件中定义的单元格属性对所述行数据进行处理,获得解析后的java数据;
所述封装子单元,用于调用set方法将所述java数据封装到指定的javabean集合中;
数据保存单元,用于将所述javabean集合保存至database数据库。
6.根据权利要求5所述的excel数据解析***,其特征在于,所述数据转换单元使用POI组件将excel文件转换成工作簿实例workbook。
7.根据权利要求5所述的excel数据解析***,其特征在于,所述单元格属性包括:单元格类型、对应的bean节点的属性名和校验规则。
8.根据权利要求7所述的excel数据解析***,其特征在于,所述校验规则包括非空数据校验和/或正则校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710253333.9A CN107168695B (zh) | 2017-04-18 | 2017-04-18 | 一种excel数据解析方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710253333.9A CN107168695B (zh) | 2017-04-18 | 2017-04-18 | 一种excel数据解析方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107168695A CN107168695A (zh) | 2017-09-15 |
CN107168695B true CN107168695B (zh) | 2020-07-03 |
Family
ID=59812212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710253333.9A Active CN107168695B (zh) | 2017-04-18 | 2017-04-18 | 一种excel数据解析方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168695B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943462A (zh) * | 2017-12-15 | 2018-04-20 | 政采云有限公司 | 针对java中的excel数据的处理方法和云端数据交互方法 |
CN110134398A (zh) * | 2018-02-02 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 表格数据的解析方法、***及设备 |
CN111240688B (zh) * | 2020-01-10 | 2023-08-18 | 深圳前海环融联易信息科技服务有限公司 | excel文件的解析方法、装置、计算机设备及存储介质 |
CN111611242A (zh) * | 2020-04-30 | 2020-09-01 | 北京航天云路有限公司 | 一种实现Excel数据向数据库导入的方法 |
CN112347751B (zh) * | 2020-11-06 | 2024-06-18 | 北京思特奇信息技术股份有限公司 | 一种cosmic工作量评估文档生成的方法及装置 |
CN117787251B (zh) * | 2024-02-28 | 2024-05-07 | 江苏中威科技软件***有限公司 | 多格式文件组合或合并阅读展开excel隐藏内容的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010105679A (ko) * | 2000-05-17 | 2001-11-29 | 김지섭 | Csv 포맷 파일 작성방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621340B2 (en) * | 2004-12-20 | 2013-12-31 | Microsoft Corporation | Block properties and calculated columns in a spreadsheet application |
CN102609483B (zh) * | 2012-01-19 | 2014-07-16 | 北京思特奇信息技术股份有限公司 | 一种基于配置方式的Excel通用导入方法 |
CN103744982A (zh) * | 2014-01-15 | 2014-04-23 | 北京神州普惠科技股份有限公司 | 一种将Excel数据导入数据库的方法 |
CN104991776A (zh) * | 2015-07-09 | 2015-10-21 | 国云科技股份有限公司 | 一种基于配置的excel读写方法 |
CN105094852A (zh) * | 2015-09-07 | 2015-11-25 | 浪潮软件集团有限公司 | 一种数据excel导入和导出的工具 |
-
2017
- 2017-04-18 CN CN201710253333.9A patent/CN107168695B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010105679A (ko) * | 2000-05-17 | 2001-11-29 | 김지섭 | Csv 포맷 파일 작성방법 |
Also Published As
Publication number | Publication date |
---|---|
CN107168695A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168695B (zh) | 一种excel数据解析方法及*** | |
CN106202292B (zh) | 一种基于结构化数据模型的标准信息分析方法 | |
CN104881275B (zh) | 一种电子报表生成方法及装置 | |
CN102004744B (zh) | 从一个源表到至少一个目标库的表的数据抽取***及方法 | |
CN104360865A (zh) | 一种序列化方法、反序列化方法及相关设备 | |
CN105447099A (zh) | 日志结构化信息提取方法及装置 | |
CN103885925B (zh) | 一种xbrl实例文档的封装方法 | |
CN110020358B (zh) | 用于生成动态页面的方法和装置 | |
WO2017036348A1 (zh) | 一种可扩展标记语言xml文档的压缩、解压方法和装置 | |
CN111950247A (zh) | 一种基于配置的Word文档生成方法 | |
CN110955714A (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN114595199B (zh) | 文件解析方法、装置、计算机设备和存储介质 | |
CN105824647A (zh) | 一种表单页面生成方法和装置 | |
CN105867886B (zh) | 一种写表格的方法及装置 | |
CN102063415B (zh) | 向pdf文件内嵌单字节字体的方法及其*** | |
CN105574164B (zh) | Excel文档的数据解析方法及装置 | |
CN111191419A (zh) | 适用testlink的excel转xml方法及*** | |
US9201838B2 (en) | Systems and methods for the efficient exchange of hierarchical data | |
CN111158665A (zh) | 代码生成方法及装置、电子设备和存储介质 | |
CN106775643B (zh) | 一种带有渠道数据的应用文件打包***及方法 | |
CN105224319A (zh) | 基于dom4j实现XBRL实例文档预览的方法 | |
CN102262784B (zh) | 基于图像压缩的字库编码方法和解码方法 | |
CN112445811A (zh) | 基于sql配置的数据服务方法、装置、存储介质及组件 | |
CN111353279A (zh) | 字符编码的转换方法、装置和计算机存储介质 | |
CN112947938B (zh) | 一种文件转化方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |