CN116757170A - 一种基于JAVA语言的Excel表格导入方法和系统 - Google Patents
一种基于JAVA语言的Excel表格导入方法和系统 Download PDFInfo
- Publication number
- CN116757170A CN116757170A CN202311047755.2A CN202311047755A CN116757170A CN 116757170 A CN116757170 A CN 116757170A CN 202311047755 A CN202311047755 A CN 202311047755A CN 116757170 A CN116757170 A CN 116757170A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- multimedia file
- multimedia
- importing
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004458 analytical method Methods 0.000 claims abstract description 52
- 238000013519 translation Methods 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000008676 import Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 10
- 238000012015 optical character recognition Methods 0.000 description 8
- 238000000605 extraction Methods 0.000 description 5
- 230000004075 alteration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于JAVA语言的Excel表格导入方法和系统,所述方法包括初始配置步骤,完成初始配置,获得解析组件;接收文件步骤,接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件;第一解析步骤,基于所述解析组件,对所述多媒体文件进行解析获得第一集合;第二解析步骤,基于所述解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;导入步骤,获取待导入所述第二集合的File文件,将所述第二集合填装到所述File文件中。本发明可以解析带有多媒体文件的Excel表格文件,可以将Excel表格文件解析的数据导入到File文件中,同时实现了快速查找、修改和删除Excel表格数据等,提高了用户体验。
Description
技术领域
本发明涉及数据处理领域,具体地,涉及一种基于JAVA语言的Excel表格导入方法和系统。
背景技术
在目前的业务办理过程中经常需要使用Excel表格文件,用于数据的存储、加工和转移等,Excel文件里面的数据类型随着需求变得越来越多,比如图像类、文本文件类和视频类等,解析和导入Excel表格文件随着数据类型的多样化变得越来越困难和复杂。在JAVA语言中,目前常用的是Java Excel API和阿里开源的EasyExcel两种方法,一般是将Excel转换成JAVA的输入流进行字段的匹配,读取表头数据形成一个类,再读取表格中与表头数据相匹配的数据,形成有映射关系的列表,通过这个列表实现解析和导入的目的。但Excel的多媒体文件的相应信息保存的位置跟数据内容不一致,Java Excel API仅支持图像类,且只支持识别PNG格式,EasyExcel则暂时不支持解析带多媒体文件的Excel,一般和HuToolPOI工具一起使用,但HuTool POI用于单独解析Excel里面的图像类,且只能读取浮动的图像,嵌入单元格的图像无法读取,从而目前的两种方法无法很好的解析和导入带有多媒体文件的Excel表格文件。
发明内容
为了解决在现有技术下无法解析和导入带有多媒体文件的Excel表格文件的问题,本发明提供了一种基于JAVA语言的Excel表格导入方法,所述方法包括:
初始配置步骤:完成初始配置,获得解析组件;
接收文件步骤:接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件;
第一解析步骤:基于所述解析组件,对所述多媒体文件进行解析获得第一集合;
第二解析步骤:基于所述解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;
导入步骤:获取待导入所述第二集合的File文件,将所述第二集合填装到所述File文件中。
配置JAVA语言所需的环境以及导入解析Excel文件所需的解析组件,接收待处理的Excel文件,通过第一解析步骤对Excel文件中的多媒体文件进行解析并将解析获取的多媒体数据存储在第一集合,通过第二解析步骤对所述Excel文件中的非多媒体文件进行解析,并将解析后获取的非多媒体文件数据与所述第一集合一起存储获得第二集合,通过导入步骤获取File文件,将所述第二集合的数据导入到所述File文件,实现解析和导入Excel文件的多种数据格式。
进一步地,所述初始配置步骤包括配置Spring框架和Apache POI库,配置JAVA的框架和导入解析所述Excel文件所需的组件。
进一步地,所述接收文件步骤具体包括:
通过文件组件获取所述Excel文件;
通过表单组件获取所述Excel文件中指定待解析的表单。
进一步地,所述第一解析步骤具体包括:
获取所述表单;
通过行组件循环读取所述表单中每一行的行数据;
判断所述行数据是否包括所述多媒体文件,若是则将所述多媒体文件的第二数据存储在所述第一集合;所述第一解析步骤用于解析所述多媒体文件。
进一步地,所述第一解析步骤还包括:
通过调用坐标组件获取所述多媒体文件的坐标信息,将所述坐标信息存储在所述第一集合,用于定位所述多媒体文件,方便操作所述多媒体文件;
和/或,
将所述多媒体文件上传到文件服务器,获得一个包括所述多媒体文件所有属性的对象,所述对象包括唯一标识符,将所述唯一标识符存储在所述第一集合,每一个所述多媒体文件都拥有一个所述唯一标识符,通过所述唯一标识符可快速区分和查找所述多媒体文件;
和/或,
分类标识所述多媒体文件,将所述多媒体文件分类,通过类别可快速获取所述多媒体文件。
进一步地,所述第二解析步骤具体包括:
获取所述表单;
通过所述行组件循环读取所述表单的每一行数据;
通过列组件循环读取所述每一行数据的每一列数据;
判断所述每一列数据是否为所述多媒体文件,若是则读取所述第一集合中对应的所述第二数据存储在所述第二集合,若否则读取所述非多媒体文件,获得所述第一数据,将所述第一数据存储在所述第二集合。所述第二解析步骤用于解析所述非多媒体文件。
进一步地,所述第二解析步骤还包括:通过所述行组件读取所述表单的首行数据,判断所述首行数据是否为空,若是则返回空值。
进一步地,所述第二解析步骤还包括:通过所述行组件获取首行下标和尾行下标,判断所述首行下标与所述尾行下标是否相等,若是则解析所述首行数据,获得所述表单的所有解析数据。
进一步地,所述导入步骤中的所述File文件获取方式为前端上传获取或后端指定路径创建;
所述导入步骤还包括:
判断所述File文件的后缀名是否为xlsx或xls,若后缀名是xlsx则调用所述文件组件读取所述File文件的输入流,若后缀名是xls则调用POI文件组件读取所述File文件的输入流,若后缀名不是xlsx或xls则返回空值。对所述File文件不同的文件格式,调用不同的文件组件去读取所述File文件的输入流。
在实施上述方案的过程中,申请人发现在某些场景下多媒体文件的文本信息有误需要修改或删除等,用户需要单独提取该多媒体文件利用第三方工具进行修改再导入File文件或Excel文件,过程麻烦且需要消耗一定的时间,为了解决上述问题,发明人增加了修改步骤,将多媒体文件的文本信息的转换为可编辑文本,通过修改可编辑文本对多媒体文件的文本信息进行修改,流程简洁且耗时短。
进一步地,所述方法还包括修改步骤:获取所述多媒体文件;判断所述多媒体文件是否包含文本信息;若是则将所述多媒体文件中的文本信息转换为可编辑文本;基于所述可编辑文本对所述多媒体文件中的文本信息进行修改,用于修改多媒体文件的文本信息。
在实施上述方案的过程中,申请人发现在某些场景下需要将多媒体文件的文本信息提取出来,例如身份证信息或驾照信息等,用户需要单独提取多媒体文件利用第三方工具进行解析提取,过程麻烦且需要消耗一定的时间,为了解决上述问题,发明人增加了提取步骤,将多媒体文件的文本信息进行解析获得文本数据,将文本数据和与多媒体文件的对应关系存储获得文本集合,流程简洁且耗时短。
进一步地,所述方法还包括提取步骤:获取所述多媒体文件;判断所述多媒体文件是否包含文本信息;若是则将所述文本信息进行解析获得文本数据,将所述文本数据和与所述多媒体文件的对应关系存储获得文本集合,用于读取多媒体文件的文本信息。
在实施上述方案的过程中,申请人发现在某些场景下将多媒体文件的文本信息提取出来后需要进行翻译操作,为了解决上述问题,发明人改进了提取步骤,将解析获得的文本数据进行翻译获得翻译数据,将所述翻译数据和与所述文本数据的对应关系存储获得翻译集合,方便用户进行快速翻译。
进一步地,所述提取步骤还包括:将所述文本数据进行翻译获得翻译数据,将所述翻译数据和与所述文本数据的对应关系存储获得翻译集合,用于翻译多媒体文件的文本信息。
在实施上述方案的过程中,申请人发现File文件中的多媒体文件存在重复或者相似的情况,而在某些场景下,用户只需要质量相对较高的多媒体文件,为了解决上述问题,发明人改进了导入步骤,通过获取多媒体文件的关键特征进行相似度比较,并按相似度将多媒体文件进行分类,将每个分类中的多媒体文件的属性参数与预设值相比较,获得比较值,将比较值进行排序,获取与排列第一的比较值相对应的优选多媒体文件,再删除每个分类中的非优选多媒体文件,方便用户预览和减小File文件的大小。
进一步地,所述导入步骤还包括:获取所述File文件中的多媒体文件;将所述多媒体文件进行特征提取获得关键特征;基于所述解析组件,将所述关键特征进行解析,获得所述关键特征的第一分类集合;基于所述第一分类集合,获得所述多媒体文件的第二分类集合,所述第二分类集合包含若干多媒体文件分类;将若干所述多媒体文件分类的所述多媒体文件的属性参数与第一预设值进行比较,获得若干比较结果,每一个所述比较结果包括若干比较值;将每个所述比较结果对应的若干比较值进行排序获得排序列表,若干所述比较结果对应获得若干所述排序列表;针对每个所述排序列表,获取该所述排序列表的首位比较值,若干所述排序列表对应获得若干所述首位比较值;针对每个所述首位比较值,获取该所述首位比较值对应的优选多媒体文件,若干所述首位比较值获得若干所述优选多媒体文件;将所述第二分类集合中的非所述优选多媒体文件删除。获得多媒体文件的特征并将相似的特征分在同一分类,基于特征的分类将与特征对应的多媒体文件进行分类,获得多媒体文件的分类,再将每个分类中的多媒体文件的属性参数与预设值进行比较,获得比较值,将比较值进行排序,获得每个分类的比较值排列顺序,获取与排列第一的比较值相对应的优选多媒体文件,删除每个分类中的非优选多媒体文件。只保留每个分类中质量最优的多媒体文件,可以减少重复或相似的多媒体文件,方便用户预览的同时也减小了File文件的大小,便于File文件的导入导出等操作。
在实施上述方案的过程中,申请人发现在某些场景下Excel文件中存在文件较大的多媒体文件,在导入步骤中将文件较大的多媒体文件导入File文件的过程中,耗时长且可能会导致系统卡死甚至崩溃的情况,为了解决上述问题,发明人改进了第一解析步骤,将较大的多媒体文件分割为不同部分再进行导入,可以提高导入的效率,减少卡死或者崩溃情况的出现。
进一步地,所述第一解析步骤方法还包括:获取所述多媒体文件;判断所述多媒体文件的大小是否大于第二预设值;若是则将所述多媒体文件进行预处理获得待分割文件;基于所述解析组件,将所述待分割文件进行分割,获得包含不同对象的若干文件,将所述文件和与所述多媒体文件的对应关系存储在所述第一集合。判断多媒体文件的大小是否超过预设值,若是则将多媒体文件预处理后进行分割存储,获得若干多媒体文件较小的分块文件,可以提高导入效率。
进一步地,将所述第二集合的数据存储获得类列表,用于保存原始数据或其他用途。
本发明还提供了一种基于JAVA语言的Excel表格导入系统,所述系统包括:
初始配置单元,用于完成初始配置,获得解析组件;
接收文件单元,用于接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件;
第一解析单元,用于基于所述解析组件,对所述多媒体文件进行解析获得第一集合;
第二解析单元,用于基于所述解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;
导入单元,用于获取待导入所述第二集合的File文件,将所述第二集合填装到所述File文件中。
初始配置单元配置JAVA的框架以及解析Excel文件所需的组件库,获得解析组件,接收文件单元接收待处理的Excel文件,第一解析单元基于所述解析组件对所述Excel文件中的多媒体文件进行解析,第二解析单元基于所述解析组件对所述Excel文件中的非多媒体文件进行解析,导入单元获取File文件后将解析的所有数据导入。
本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明可以解析带有多媒体文件的Excel表格文件,将多媒体文件单独进行解析,提高了解析效率,且将多媒体文件标识和分类,可以实现快速查找、修改和删除等,还可以将Excel表格文件解析的数据导入到File文件或数据库,提高了用户体验。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;
图1是本发明中一种基于JAVA语言的Excel表格导入方法的流程示意图;
图2是本发明中一种基于JAVA语言的Excel表格导入方法中的第一解析步骤流程示意图;
图3是本发明中一种基于JAVA语言的Excel表格导入方法中的第二解析步骤流程示意图;
图4是本发明中一种基于JAVA语言的Excel表格导入方法中的导入步骤流程示意图;
图5是本发明中一种基于JAVA语言的Excel表格导入方法中的分类提取多媒体文件的流程示意图;
图6是本发明中一种基于JAVA语言的Excel表格导入系统的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
参考图1,本实施例提供了一种基于JAVA语言的Excel表格导入方法,所述方法包括:
初始配置步骤:搭建JAVA环境,配置JAVA所需的Spring框架,降低使用接口的复杂度,导入Apache POI库,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,用于提供解析Excel文档的解析组件;
接收文件步骤:基于JAVA语言的字节输入流接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件,通过Apache POI库提供的文档组件读取所述Excel文件,再通过表单组件读取所述Excel文件的表单。所述多媒体文件可以是图像文件、视频文件、地理信息文件、音频文件等;所述文档组件可以是HSSFWorkbook类、XSSFWorkbook和Workbook类,所述表单组件可以是HSSFSheet类、XSSFSheet类和WorkSheet类,根据所述Excel文件不同的文件格式采用对应的文档组件和表单组件。
第一解析步骤:获取所述接收文件步骤的所述表单,通过Apache POI库提供的多媒体解析组件,对所述多媒体文件进行解析获得第一集合,所述多媒体解析组件可以是HSSFShape类、HSSFSimpleShape类和HSSFPicture类等,根据所述多媒体文件的不同类型采用对应的多媒体解析组件;
第二解析步骤:获取所述接收文件步骤的所述表单,通过Apache POI库提供的单元格解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;
导入步骤:基于JAVA语言的文件字节输入流获取待导入所述第二集合的File文件,将所述第二集合中的数据填装到所述File文件中。
参考图1和图2,在所述第一解析步骤中,本实施例通过HSSFSheet类获取所述Excel文件中指定待解析的表单,再通过HSSFShape类获取所述表单中每一行的数据,判断HSSFShape类是否为HSSFPicture类的子类,进而判断该行是否包括所述图片文件,若是则通过HSSFPicture类获取所述图片文件,通过HSSFCliebtAnchor类获取所述图片文件的行列信息,通过所述图片后缀名“.jpg”、“.png”和“.gif”等对所述图片文件分类标识,再通过InputStreamDTO类将所述图片文件上传到文件服务器,得到一个包含所述图片文件所有属性的对象,所述对象包括唯一标识符id,将所述行列信息和所述id存储在第一Map中。本实施例中图片文件可以根据用途、大小和位置进行分类;所述行列信息和所述id可以存储在List、数组、Set和Map等集合中,Map是一个键值对映射的集合,健值拥有有唯一性,本实施例优选为Map;所述图片文件可以上传到文件服务器、计算机虚拟内存、数据库或云服务器中。
在第一解析步骤中,本实施例还通过HSSFPicture类获取所述图片文件,判断所述图片文件是否为空,若否则读取所述图片文件的信息,若是则解析失败,获取所述图片文件的所述行列信息,记录在第一解析日志文件中。
在第一解析步骤中,本实施例还通过InputStreamDTO类将所述图片文件上传到文件服务器,判断是否上传成功,若是则获取所述图片文件的所述id,若否则上传失败,获取所述图片文件的所述行列信息,记录在上传日志文件中。
参考图1和图3,在所述第二解析步骤中,本实施例通过HSSFSheet类获取所述Excel文件中指定待解析的表单,通过HSSFSheet.getRow()方法获取所述表单的首行数据,判断所述首行数据是否为空,若是则返回空值,所述表单无数据,若否则通过getFirstCellNum()和getLastCellNum()方法分别获取所述首行数据的首列下标和尾列下标,再通过所述首列下标、所述尾列下标和for循环读取所述首行数据,获得表头数据,将所述表头数据存储在HashMap中;再通过HSSFSheet.getFirstRowNum()和HSSFSheet.getLastRowNum()方法分别获取首行下标和尾行下标,判断所述首行下标和所述尾行下标是否相等,若是则将所述首行下标与所述HashMap中的第三数据存储在第二Map中,将所述第二Map返回,若否则通过所述首行下标加一、所述尾行下标和for循环读取下一行数据,并将所述下一行数据的行标存储在所述第二Map中,再通过所述首列下标、所述尾列下标和for循环读取所述下一行数据的每一列数据,从所述HashMap中读取对应的所述第三数据,再判断所述每一列数据是否为所述图片文件,若是则在所述第一Map中提取对应的所述图片文件的第二数据,将所述第二数据和所述第三数据存储在第二Map中,若否则通过getCellValue()方法读取所述非图片文件的第一数据,将所述第一数据和所述第三数据存储在所述第二Map中。所述行标、所述第一数据、所述第二数据和所述第三数据可以存储在List、数组、Set和Map等集合中,Map是一个键值对映射的集合,健值拥有有唯一性,数据之间有一一对应关系,本实施例优选为所述行标、所述第一数据和所述第二数据存储在Map中;HashMap是查询效率最高的数据结构,本实施例优选为所述第三数据存储在所述HashMap中。
在第二解析步骤中,本实施例还通过getCellValue()方法读取所述非图片文件的第一数据,判断所述第一数据是否为空或读取错误,若否则将所述第一数据存储在所述第二Map中,若是空则将所述非图片文件的行列信息记录在空值日志中,将所述第一数据存储在所述第二Map中;若是读取错误则将所述非图片文件进行字符编码转换,再次读取所述第一数据,判断所述第一数据是否读取成功,若是则将所述非图片文件的行列信息记录在编码转换日志中,若否则将所述非图片文件的信息记录在第二解析日志中。
参考图1和图4,在导入步骤中,本实施例通过FileInputStream类获取所述File文件,判断所述File文件的后缀名是否为xlsx或xls,若后缀名是xlsx则调用HSSFWorkbook类读取所述File文件的输入流,若后缀名是xls则调用POIFSFileSystem(HSSFWorkbook)类读取所述File的输入流,若后缀名不是xlsx或xls则返回空值;将所述第二Map的数据导入到所述File文件中。所述File文件的获取方式可以为前端上传获取或后端指定路径创建,所述第二Map的数据可以导入到File文件、数据库或云服务器等;
在导入步骤中,本实施例还通过for循环导入第二集合中的数据,判断所述数据是否导入成功,若是则导入下一个所述数据,若否则将所述数据记录在导入日志中,再导入下一个所述数据。
实施例2
在实施例一的基础上,参考图3,本实施例中,将所述第二Map中的数据存储到JSONArray,用于保存所述Excel的原数据、导入数据库或修改等其他用途。所述第二Map中的数据可以存储到List、数组或Json字符串中,基于JSONArray的可扩展性、跨平台性和灵活性等,本实施例优选为JSONArray。
实施例3
在实施例一的基础上,在实现所述第一解析步骤时,发明人发现在所述Excel文件中包含大数据量所述多媒体文件的场景下,解析所述多媒体文件耗时长,占用资源过高,且用户在某些场景下不需要解析所有的所述多媒体文件。为了解决上述问题,发明人改进了所述第一解析步骤,增加了下述步骤,包括获取关键字,通过匹配规则对所述多媒体文件进行解析获得第三集合,还包括通过智能识别模块对所述第三集合中的所述多媒体文件进行解析获得第四集合。所述匹配规则和所述智能识别模块的应用,可以提取出与所述关键字相关的所述多媒体文件,实现了用户只获取指定内容的多媒体文件,而不需要解析所有的多媒体文件,从而提高了解析效率,减少了资源的占用。
参考图5,在第一解析步骤中,本实施例通过String字符串获取关键词,再通过HSSFSheet类获取所述Excel文件中指定待解析的表单,通过HSSFSheet.getRow()方法获取所述表单的首行数据,判断所述首行数据是否为空,若是则返回空值,所述表单无数据,若否则通过HSSFSheet.getFirstRowNum()和HSSFSheet.getLastRowNum()方法分别获取首行下标和尾行下标,判断所述首行下标和所述尾行下标是否相等,若是则返回空值,若否则通过getFirstCellNum()和getLastCellNum()方法分别获取所述首行数据的首列下标和尾列下标,再通过for循环读取所述表单的每一个单元格,将所述单元格的数据与所述关键词通过正则表达式进行匹配,判断是否匹配成功,若是则存储行标在List中,若否则读取下一个所述单元格直至循环结束;再通过for循环读取所述表单中所述行标对应的行数据,通过HSSFShape类获取所述行数据,判断HSSFShape类是否为HSSFPicture类的子类,进而判断该行是否包括所述图片文件,若是则通过HSSFPicture类获取所述图片文件,将所述图片文件存储到第三集合中,若否则读取下一行直至循环结束;再将所述第三集合中的图片文件通过图像识别模块进行智能分析,获取与所述关键字相关的图片文件存储在第四集合,判断所述第四集合是否为空,若是则返回空值,若否则上传所述第四集合中的图片文件到文件服务器。所述第四集合的图片文件可以上传到文件服务器、数据库或虚拟内存。
实施例4
在实施例一的基础上,本实施例中,获取图片文件并判断所述图片文件是否包含文本信息,若包含则通过基于JAVA语言的Tesseract OCR(Optical CharacterRecognition)引擎将所述图片文件中的文本信息转换为可编辑文本,通过修改所述可编辑文本对所述图片文件的文本信息进行修改。本实施例中所述Tesseract OCR引擎还可以为百度OCR引擎或Tess4j引擎等。
实施例5
在实施例一的基础上,本实施例中,获取图片文件并判断所述图片文件是否包含文本信息,若包含则通过基于JAVA语言的Tesseract OCR(Optical CharacterRecognition)引擎识别和读取所述图片文件中的文本信息获得文本数据,并将所述文本数据和与所述图片文件的对应关系存储获得文本集合。本实施例中所述Tesseract OCR引擎还可以为百度OCR引擎或Tess4j引擎等。
实施例6
在实施例五的基础上,本实施例中,将所述文本数据进行中文转英文翻译获得翻译数据,将所述翻译数据和与所述文本数据的对应关系存储获得翻译集合。本实施例中,翻译的语言可以为任意国家的语言,翻译语言的选择方式可以为用户选定也可以为自动选择。
实施例7
在实施例一的基础上,本实施例中,在所述导入步骤中,获取File文件中的图片文件,将所述图片文件进行特征提取获得关键特征,通过基于JAVA语言实现的余弦算法将所述关键特征进行相似度比较获得比较结果,基于所述比较结果将相似的所述关键特征分在同一分类中,获得包含不同分类的第一分类集合,基于所述第一分类集合中的所述关键特征的分类,将与所述关键特征对应的所述图片文件进行分类,获得第二分类集合,将所述第二分类集合中每个分类的所述图片文件的分辨率与预设值进行比较,通过公式:分辨率/预设值,获得比较值,如分辨率为720p,预设值为1080p,则720/1080获得比较值为2/3,再将比较值进行排序,如2,1.5,1,…,2/3,获取与排列首位的比较值相对应的优选图片文件,再将每个分类中的非优选图片文件删除。本实施例中的相似度比较算法还可以为编辑距离算法、欧式距离算法或Jaccard相似度算法等,图片文件的分辨率还可以为颜色或文件大小等。
实施例8
在实施例一的基础上,本实施例中,在所述第一解析步骤中,获取图片文件,判断所述图片文件的大小是否大于预设值,若是则将所述图片文件进行预处理获得待分割文件,基于JAVA语言实现的阈值分割法将所述待分割文件进行分割,获得包含不同对象的若干子文件,将所述子文件和与所述图片文件的对应关系存储在所述第一集合中。本实施例中预处理包括将图片灰度化、去噪和边缘检测,分割方法还可以为区域生长法或边界提取法。
实施例9
参考图6,本实施例提供了一种基于JAVA语言的Excel表格导入系统,所述系统包括:
初始配置单元,搭建JAVA环境,配置JAVA所需的Spring框架,导入Apache POI库。Apache POI提供API给JAVA程序对Microsoft Office格式档案读和写的功能,用于提供解析Excel文档的解析组件,降低使用接口的复杂度;
接收文件单元,基于JAVA语言的字节输入流接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件,通过Apache POI库提供的文档组件读取所述Excel文件,再通过表单组件读取所述Excel文件的表单;所述多媒体文件可以是图像文件、视频文件、地理信息文件、音频文件等;所述文档组件可以是HSSFWorkbook类、XSSFWorkbook和Workbook类,所述表单组件可以是HSSFSheet类、XSSFSheet类和WorkSheet类,根据所述Excel文件不同的文件格式采用对应的文档组件和表单组件;
第一解析单元,通过Apache POI库提供的多媒体解析组件,对所述多媒体文件进行解析获得第一集合,所述多媒体解析组件可以是HSSFShape类、HSSFSimpleShape类和HSSFPicture类等,根据所述多媒体文件的不同类型采用对应的多媒体解析组件;
第二解析单元,通过Apache POI库提供的单元格解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;
导入单元,基于JAVA语言的文件字节输入流获取待导入所述第二集合的File文件,将所述第二集合填装到所述File文件中。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种基于JAVA语言的Excel表格导入方法,其特征在于,所述方法包括:
初始配置步骤:完成初始配置,获得解析组件;
接收文件步骤:接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件;
第一解析步骤:基于所述解析组件,对所述多媒体文件进行解析获得第一集合;
第二解析步骤:基于所述解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;
导入步骤:获取待导入所述第二集合的File文件,将所述第二集合填装到所述File文件中。
2.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述初始配置步骤包括配置Spring框架和Apache POI库,获得用于提供解析所述Excel文件的组件。
3.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述接收文件步骤具体包括:
通过文件组件获取所述Excel文件;
通过表单组件获取所述Excel文件中指定待解析的表单。
4.根据权利要求3所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述第一解析步骤具体包括:
获取所述表单;
通过行组件循环读取所述表单中每一行的行数据;
判断所述行数据是否包括所述多媒体文件,若是则将所述多媒体文件的第二数据存储在所述第一集合。
5.根据权利要求4所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述第一解析步骤还包括:
通过调用坐标组件获取所述多媒体文件的坐标信息,将所述坐标信息存储在所述第一集合;
和/或,
将所述多媒体文件上传到文件服务器,获得一个包括所述多媒体文件所有属性的对象,所述对象包括唯一标识符,将所述唯一标识符存储在所述第一集合;
和/或,
分类标识所述多媒体文件。
6.根据权利要求3所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述第二解析步骤具体包括:
获取所述表单;
通过所述行组件循环读取所述表单的每一行数据;
通过列组件循环读取所述每一行数据的每一列数据;
判断所述每一列数据是否为所述多媒体文件,若是则读取所述第一集合中对应的所述第二数据存储在所述第二集合,若否则读取所述非多媒体文件,获得所述第一数据,将所述第一数据存储在所述第二集合。
7.根据权利要求6所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述第二解析步骤还包括:通过所述行组件读取所述表单的首行数据;判断所述首行数据是否为空,若是则返回空值。
8.根据权利要求7所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述第二解析步骤还包括:通过所述行组件获取首行下标和尾行下标,判断所述首行下标与所述尾行下标是否相等,若是则解析所述首行数据,获得所述表单的所有解析数据。
9.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述导入步骤中的所述File文件获取方式为前端上传获取或后端指定路径创建;所述导入步骤还包括:
判断所述File文件的后缀名是否为xlsx或xls,若后缀名是xlsx则调用所述文件组件读取所述File的输入流,若后缀名是xls则调用POI文件组件读取所述File的输入流,若后缀名不是xlsx或xls则返回空值。
10.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述方法还包括修改步骤:
获取所述多媒体文件;
判断所述多媒体文件是否包含文本信息;
若是则将所述多媒体文件中的文本信息转换为可编辑文本;
基于所述可编辑文本对所述多媒体文件中的文本信息进行修改。
11.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述方法还包括提取步骤:
获取所述多媒体文件;
判断所述多媒体文件是否包含文本信息;
若是则将所述文本信息进行解析获得文本数据,将所述文本数据和与所述多媒体文件的对应关系存储获得文本集合。
12.根据权利要求11所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述提取步骤还包括:
将所述文本数据进行翻译获得翻译数据,将所述翻译数据和与所述文本数据的对应关系存储获得翻译集合。
13.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述导入步骤还包括:
获取所述File文件中的多媒体文件;
将所述多媒体文件进行特征提取获得关键特征;
基于所述解析组件,将所述关键特征进行解析,获得所述关键特征的第一分类集合;
基于所述第一分类集合,获得所述多媒体文件的第二分类集合,所述第二分类集合包含若干多媒体文件分类;
将若干所述多媒体文件分类的所述多媒体文件的属性参数与第一预设值进行比较,获得若干比较结果,每一个所述比较结果包括若干比较值;
将每个所述比较结果对应的若干比较值进行排序获得排序列表,若干所述比较结果对应获得若干所述排序列表;
针对每个所述排序列表,获取该所述排序列表的首位比较值,若干所述排序列表对应获得若干所述首位比较值;
针对每个所述首位比较值,获取该所述首位比较值对应的优选多媒体文件,若干所述首位比较值获得若干所述优选多媒体文件;
将所述第二分类集合中的非所述优选多媒体文件删除。
14.根据权利要求1所述的一种基于JAVA语言的Excel表格导入方法,其特征在于,所述第一解析步骤方法还包括:
获取所述多媒体文件;
判断所述多媒体文件的大小是否大于第二预设值;
若是则将所述多媒体文件进行预处理获得待分割文件;
基于所述解析组件,将所述待分割文件进行分割,获得包含不同对象的若干文件,将所述文件和与所述多媒体文件的对应关系存储在所述第一集合。
15.一种基于JAVA语言的Excel表格导入系统,其特征在于,所述系统包括:
初始配置单元,用于完成初始配置,获得解析组件;
接收文件单元,用于接收待处理的Excel文件,所述Excel文件包含多媒体文件和非多媒体文件;
第一解析单元,用于基于所述解析组件,对所述多媒体文件进行解析获得第一集合;
第二解析单元,用于基于所述解析组件,对所述非多媒体文件进行解析获得第一数据,基于所述第一数据与所述第一集合获得第二集合;
导入单元,用于获取待导入所述第二集合的File文件,将所述第二集合填装到所述File文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311047755.2A CN116757170B (zh) | 2023-08-21 | 2023-08-21 | 一种基于JAVA语言的Excel表格导入方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311047755.2A CN116757170B (zh) | 2023-08-21 | 2023-08-21 | 一种基于JAVA语言的Excel表格导入方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116757170A true CN116757170A (zh) | 2023-09-15 |
CN116757170B CN116757170B (zh) | 2023-10-20 |
Family
ID=87955622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311047755.2A Active CN116757170B (zh) | 2023-08-21 | 2023-08-21 | 一种基于JAVA语言的Excel表格导入方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116757170B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222083A (zh) * | 2011-05-06 | 2011-10-19 | 中国科学院研究生院 | 基于创建对象的xbrl分类标准的快速解析方法 |
CN102722479A (zh) * | 2011-03-30 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 一种实现语言翻译的方法及装置 |
CN107368593A (zh) * | 2017-07-25 | 2017-11-21 | 万帮充电设备有限公司 | 数据导入方法、装置及服务器 |
CN109783554A (zh) * | 2018-12-13 | 2019-05-21 | 重庆金融资产交易所有限责任公司 | excel文档解析方法、装置及计算机可读存储介质 |
CN109783558A (zh) * | 2018-12-28 | 2019-05-21 | 益萃网络科技(中国)有限公司 | Excel数据的导入方法、装置、计算机设备和存储介质 |
CN110196971A (zh) * | 2019-04-23 | 2019-09-03 | 平安科技(深圳)有限公司 | 在线文档编辑方法、装置、终端设备及存储介质 |
WO2019169693A1 (zh) * | 2018-03-08 | 2019-09-12 | 平安科技(深圳)有限公司 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
CN111506747A (zh) * | 2020-04-16 | 2020-08-07 | Oppo(重庆)智能科技有限公司 | 文件解析方法、装置、电子设备及存储介质 |
US20210312125A1 (en) * | 2020-04-03 | 2021-10-07 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, device, and storage medium for parsing document |
CN114005126A (zh) * | 2021-11-26 | 2022-02-01 | 成都数联云算科技有限公司 | 表格重构方法、装置、计算机设备及可读存储介质 |
CN114357943A (zh) * | 2021-12-03 | 2022-04-15 | 北京复兴华创技术有限公司 | 一种通用高效Excel读取处理方法、工具、介质及设备 |
CN114490848A (zh) * | 2022-01-19 | 2022-05-13 | 北京明朝万达科技股份有限公司 | 文件解析处理方法、装置、存储介质以及电子设备 |
CN115756437A (zh) * | 2022-11-30 | 2023-03-07 | 金航数码科技有限责任公司 | 基于schema文件的可视化xml数据编制方法及系统 |
CN116562247A (zh) * | 2023-05-11 | 2023-08-08 | 明度智云(浙江)科技有限公司 | 电子表格内容生成方法、装置和计算机设备 |
-
2023
- 2023-08-21 CN CN202311047755.2A patent/CN116757170B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722479A (zh) * | 2011-03-30 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 一种实现语言翻译的方法及装置 |
CN102222083A (zh) * | 2011-05-06 | 2011-10-19 | 中国科学院研究生院 | 基于创建对象的xbrl分类标准的快速解析方法 |
CN107368593A (zh) * | 2017-07-25 | 2017-11-21 | 万帮充电设备有限公司 | 数据导入方法、装置及服务器 |
WO2019169693A1 (zh) * | 2018-03-08 | 2019-09-12 | 平安科技(深圳)有限公司 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
CN109783554A (zh) * | 2018-12-13 | 2019-05-21 | 重庆金融资产交易所有限责任公司 | excel文档解析方法、装置及计算机可读存储介质 |
CN109783558A (zh) * | 2018-12-28 | 2019-05-21 | 益萃网络科技(中国)有限公司 | Excel数据的导入方法、装置、计算机设备和存储介质 |
CN110196971A (zh) * | 2019-04-23 | 2019-09-03 | 平安科技(深圳)有限公司 | 在线文档编辑方法、装置、终端设备及存储介质 |
US20210312125A1 (en) * | 2020-04-03 | 2021-10-07 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, device, and storage medium for parsing document |
CN111506747A (zh) * | 2020-04-16 | 2020-08-07 | Oppo(重庆)智能科技有限公司 | 文件解析方法、装置、电子设备及存储介质 |
CN114005126A (zh) * | 2021-11-26 | 2022-02-01 | 成都数联云算科技有限公司 | 表格重构方法、装置、计算机设备及可读存储介质 |
CN114357943A (zh) * | 2021-12-03 | 2022-04-15 | 北京复兴华创技术有限公司 | 一种通用高效Excel读取处理方法、工具、介质及设备 |
CN114490848A (zh) * | 2022-01-19 | 2022-05-13 | 北京明朝万达科技股份有限公司 | 文件解析处理方法、装置、存储介质以及电子设备 |
CN115756437A (zh) * | 2022-11-30 | 2023-03-07 | 金航数码科技有限责任公司 | 基于schema文件的可视化xml数据编制方法及系统 |
CN116562247A (zh) * | 2023-05-11 | 2023-08-08 | 明度智云(浙江)科技有限公司 | 电子表格内容生成方法、装置和计算机设备 |
Non-Patent Citations (5)
Title |
---|
PRIYARAJTT: "Java Program to Extract Content from a Excel sheet", HTTPS://WWW.GEEKSFORGEEKS.ORG/JAVA-PROGRAM-TO-EXTRACT-CONTENT-FROM-A-EXCEL-SHEET/ * |
只会DEBUG: "poi读取excel中的内容(带图片)", HTTPS://BLOG.CSDN.NET/JAVA_XDO/ARTICLE/DETAILS/107112742 * |
李琨 等: "基于 Excelize 函数库实现 Excel 文件的自动读写操作", 电脑编程技巧与维护, pages 90 - 91 * |
林雪南: "基于Apache POI解析Excel文件及内存使用分析", 电脑编程技巧与维护, pages 60 - 61 * |
高锐 等: "一种基于环保大数据的存储模式及数据导入设计与实现", 计算机应用与软件, no. 9, pages 64 - 67 * |
Also Published As
Publication number | Publication date |
---|---|
CN116757170B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083805B (zh) | 一种将Word文件转换为EPUB文件的方法及系统 | |
CN109635120B (zh) | 知识图谱的构建方法、装置和存储介质 | |
US20060088214A1 (en) | System and method for identifying and labeling fields of text associated with scanned business documents | |
CN110502664B (zh) | 视频标签索引库创建方法、视频标签生成方法及装置 | |
US7277584B2 (en) | Form recognition system, form recognition method, program and storage medium | |
US11514102B2 (en) | Methods and systems for depth-aware image searching | |
CN108491543A (zh) | 图像检索方法、图像存储方法及图像检索系统 | |
KR101472451B1 (ko) | 디지털 콘텐츠 관리 시스템 및 방법 | |
CN114359943A (zh) | Ofd版式文档段落识别方法及装置 | |
CN110532449B (zh) | 一种业务文档的处理方法、装置、设备和存储介质 | |
JP2008310772A (ja) | 情報処理装置、その制御プログラムおよび該制御プログラムを記録したコンピュータ読み取り可能な記録媒体、ならびに制御方法 | |
CN116092108A (zh) | 一种实体文档扫描生成pdf文件的方法、系统及存储介质 | |
CN111581267A (zh) | 一种对象数据的存储方法和装置 | |
KR20150122855A (ko) | 실시간 질의 및 정답을 위한 분산처리 시스템 및 방법 | |
CN112148938B (zh) | 一种跨域异构数据检索系统及检索方法 | |
JP3608965B2 (ja) | 自動オーサリング装置および記録媒体 | |
CN116757170B (zh) | 一种基于JAVA语言的Excel表格导入方法和系统 | |
CN112464907A (zh) | 一种文档处理系统及方法 | |
CN111860524A (zh) | 一种数字档案智能分类的装置及方法 | |
CN111897828A (zh) | 数据批处理实现方法、装置、设备及存储介质 | |
CN110825874A (zh) | 一种中文文本分类方法和装置及计算机可读存储介质 | |
US20220301285A1 (en) | Processing picture-text data | |
CN110597765A (zh) | 一种大零售呼叫中心异构数据源数据处理方法及装置 | |
CN111291208B (zh) | 前端页面元素的命名方法、装置及电子设备 | |
CN109739981B (zh) | 一种pdf文件类别判定方法及文字提取方法 |
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 |