CN112364611A - 一种高性能的表格导入的方法 - Google Patents
一种高性能的表格导入的方法 Download PDFInfo
- Publication number
- CN112364611A CN112364611A CN202011054965.0A CN202011054965A CN112364611A CN 112364611 A CN112364611 A CN 112364611A CN 202011054965 A CN202011054965 A CN 202011054965A CN 112364611 A CN112364611 A CN 112364611A
- Authority
- CN
- China
- Prior art keywords
- data
- header
- format
- processor
- single operation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000000605 extraction Methods 0.000 claims abstract description 8
- 238000004064 recycling Methods 0.000 claims description 4
- 230000001351 cycling effect Effects 0.000 abstract 1
- 230000008676 import Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Images
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/174—Form filling; Merging
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种高性能的表格导入的方法,该方法先根据程序中预设常用的格式,创建出每个格式的单例处理器,在前端上传文件后,服务器根据文件每个格式的后缀调用构造出来唯一结构去处理;在获取到表格内容后,默认先读出20行数据,进行处理此批数据,首先将数据进行共性提取,包括步骤:S1、数据库中预设标题表头的常驻字段,S2、再循环遍历此数据;S3、将命中值除以总列数,得到比值,默认比值达到了70%则将此行作为表头;S4、将表头上传处理器;S5、开启一个常驻协程。在此次处理的时候的过程中实行边解析边释放的原则每次处理20行,读取处理后销毁内存占用,避免表格过大的情况下造成内存开销过大。
Description
技术领域
本发明涉及软件管理技术领域,具体是一种高性能的表格导入的方法。
背景技术
目前管理后台在系统建设中扮演的角色愈加重要,较大的一部分系统会和传统的表格进行数据交互。传统的表格导入受到表格文件类型和模版的限制,导入时间长,导入格式要求过于苛刻,导入处理资源占用高。
发明内容
本发明的目的在于提供一种高性能的表格导入的方法,以解决传统的表格导入受到表格文件类型和模版的限制,导入时间长,导入格式要求过于苛刻,导入处理资源占用高的问题。
为实现上述目的,本发明提供如下技术方案:一种高性能的表格导入的方法,该方法先根据程序中预设常用的格式,创建出每个格式的单例处理器,在前端上传文件后,服务器根据文件每个格式的后缀调用构造出来唯一结构去处理;
在获取到表格内容后,默认先读出20行数据,进行处理此批数据,首先将数据进行共性提取,包括步骤:
S1、数据库中预设标题表头的常驻字段,例如姓名、唯一信用编码、ID、电话;
S2、再循环遍历此数据,发现此行数据中,出现一次常驻字段,则命中值+1,每次出现则加1;
S3、将命中值除以总列数,得到比值,默认比值达到了70%则将此行作为表头;
S4、将表头上传处理器,依次从表头下进行处理,采用对比的方式进行数据循环;
S5、开启一个常驻协程,用于接受处理器给定的数据,并将其放置数据集合中。
2、根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
步骤S4数据循环为:
表头一共设置有A、B、C、D四列,则从行数+1,列A、B、C、D中进行获取,发现获取不到,则可以判定此项是空,默认处理为空字符串。
作为本发明再进一步的方案:
该方法还包括缓存组件;
步骤S4数据循环中数据写入缓存组件中,其中,数据写入失败,则再次放入集合中,且标记失败次数,当失败次数到达最大值,则会写入失败记录中,且从集合中弹出。
作为本发明再进一步的方案:
预设常用的格式为xlsx、xls、csv,txt。
作为本发明再进一步的方案:
还包括加密单元格,用于加密处理完成后的数据,其中,加密单元格为SM4加密。
作为本发明再进一步的方案:
步骤S3与步骤4中处理表头时,可进行合并拆分单元格;
其中,当数据列数大于等于总列数时,则进行合并单元格,当数据列数小于总数,则判断为有合并单元格,并进行单元格拆分,整理出表头。
作为本发明再进一步的方案:
还包括组件处理器,用于创建时间、类型、上传人员身份、数据长度。
作为本发明再进一步的方案:
该方法还可根据用户自定义预设表格格式,创建自定义单例处理器,服务器根据自定义文件格式构造处理;
获取自定义表格数据,读出20行数据,并通过步骤S1-步骤S5进行数据共性提取。
与现有技术相比,本发明的有益效果是:
在此次处理的时候的过程中实行边解析边释放的原则每次处理20行,读取处理后销毁内存占用,避免表格过大的情况下造成内存开销过大。
附图说明
图1为实施例一种高性能的表格导入的方法的流程示意图;
图2为实施例一种高性能的表格导入的方法的具体实施步骤图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行说明、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一、
请参阅图1与图2所示,本发明实施例中,一种高性能的表格导入的方法,该方法先根据程序中预设常用的格式,创建出每个格式的单例处理器,在前端上传文件后,服务器根据文件每个格式的后缀调用构造出来唯一结构去处理;
在获取到表格内容后,默认先读出20行数据,进行处理此批数据,首先将数据进行共性提取,包括步骤:
S1、数据库中预设标题表头的常驻字段,例如姓名、唯一信用编码、ID、电话;
S2、再循环遍历此数据,发现此行数据中,出现一次常驻字段,则命中值+1,每次出现则加1;
S3、将命中值除以总列数,得到比值,默认比值达到了70%则将此行作为表头;
S4、将表头上传处理器,依次从表头下进行处理,采用对比的方式进行数据循环;
S5、开启一个常驻协程,用于接受处理器给定的数据,并将其放置数据集合中。
在本实施例中,通过对表格数据单例处理器,并先读取0行数据,进行处理此批数据,并且通过步骤S1-步骤S5进行对数据读取处理后销毁内存占用,避免表格过大的情况下造成内存开销过大,并且缩短了导入时间长。
实施例二、
请参阅图1与图2所示,一种高性能的表格导入的方法,该方法先根据程序中预设常用的格式,创建出每个格式的单例处理器,在前端上传文件后,服务器根据文件每个格式的后缀调用构造出来唯一结构去处理;
在获取到表格内容后,默认先读出20行数据,进行处理此批数据,首先将数据进行共性提取,包括步骤:
S1、数据库中预设标题表头的常驻字段,例如姓名、唯一信用编码、ID、电话;
S2、再循环遍历此数据,发现此行数据中,出现一次常驻字段,则命中值+1,每次出现则加1;
S3、将命中值除以总列数,得到比值,默认比值达到了70%则将此行作为表头;
S4、将表头上传处理器,依次从表头下进行处理,采用对比的方式进行数据循环;
S5、开启一个常驻协程,用于接受处理器给定的数据,并将其放置数据集合中。
步骤S4数据循环为:
表头一共设置有A、B、C、D四列,则从行数+1,列A、B、C、D中进行获取,发现获取不到,则可以判定此项是空,默认处理为空字符串。
该方法还包括缓存组件;
步骤S4数据循环中数据写入缓存组件中,其中,数据写入失败,则再次放入集合中,且标记失败次数,当失败次数到达最大值,则会写入失败记录中,且从集合中弹出,读取处理后销毁内存占用,避免表格过大的情况下造成内存开销过大。
预设常用的格式为xlsx、xls、csv,txt。
还包括加密单元格,用于加密处理完成后的数据,其中,加密单元格为SM4加密,数据块为密文,进行对数据保存。
步骤S3与步骤4中处理表头时,可进行合并拆分单元格;
其中,当数据列数大于等于总列数时,则进行合并单元格,当数据列数小于总数,则判断为有合并单元格,并进行单元格拆分,整理出表头。
还包括组件处理器,用于创建时间、类型、上传人员身份、数据长度。
实施例三、
结合实施一与实施例二、该方法还可根据用户自定义预设表格格式,创建自定义单例处理器,服务器根据自定义文件格式构造处理;
获取自定义表格数据,读出20行数据,并通过步骤S1-步骤S5进行数据共性提取。
通过自定义可设置时间、类型、上传人员身份、数据长长等。
综上,该种高性能的表格导入的方法,该方法处理的时候的过程中实行边解析边释放的原则每次处理20行,读取处理后销毁内存占用,避免表格过大的情况下造成内存开销过大。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明专利。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (8)
1.一种高性能的表格导入的方法,其特征在于,该方法先根据程序中预设常用的格式,创建出每个格式的单例处理器,在前端上传文件后,服务器根据文件每个格式的后缀调用构造出来唯一结构去处理;
在获取到表格内容后,默认先读出20行数据,进行处理此批数据,首先将数据进行共性提取,包括步骤:
S1、数据库中预设标题表头的常驻字段,例如姓名、唯一信用编码、ID、电话;
S2、再循环遍历此数据,发现此行数据中,出现一次常驻字段,则命中值+1,每次出现则加1;
S3、将命中值除以总列数,得到比值,默认比值达到了70%则将此行作为表头;
S4、将表头上传处理器,依次从表头下进行处理,采用对比的方式进行数据循环;
S5、开启一个常驻协程,用于接受处理器给定的数据,并将其放置数据集合中。
2.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
步骤S4数据循环为:
表头一共设置有A、B、C、D四列,则从行数+1,列A、B、C、D中进行获取,发现获取不到,则可以判定此项是空,默认处理为空字符串。
3.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
该方法还包括缓存组件;
步骤S4数据循环中数据写入缓存组件中,其中,数据写入失败,则再次放入集合中,且标记失败次数,当失败次数到达最大值,则会写入失败记录中,且从集合中弹出。
4.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
预设常用的格式为xlsx、xls、csv,txt。
5.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
还包括加密单元格,用于加密处理完成后的数据,其中,加密单元格为SM4加密。
6.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
步骤S3与步骤4中处理表头时,可进行合并拆分单元格;
其中,当数据列数大于等于总列数时,则进行合并单元格,当数据列数小于总数,则判断为有合并单元格,并进行单元格拆分,整理出表头。
7.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
还包括组件处理器,用于创建时间、类型、上传人员身份、数据长度。
8.根据权利要求1所述的一种高性能的表格导入的方法,其特征在于,
该方法还可根据用户自定义预设表格格式,创建自定义单例处理器,服务器根据自定义文件格式构造处理;
获取自定义表格数据,读出20行数据,并通过步骤S1-步骤S5进行数据共性提取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011054965.0A CN112364611A (zh) | 2020-09-29 | 2020-09-29 | 一种高性能的表格导入的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011054965.0A CN112364611A (zh) | 2020-09-29 | 2020-09-29 | 一种高性能的表格导入的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112364611A true CN112364611A (zh) | 2021-02-12 |
Family
ID=74506479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011054965.0A Pending CN112364611A (zh) | 2020-09-29 | 2020-09-29 | 一种高性能的表格导入的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112364611A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113901214A (zh) * | 2021-10-08 | 2022-01-07 | 北京百度网讯科技有限公司 | 表格信息的提取方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706775A (zh) * | 2009-12-09 | 2010-05-12 | 金蝶软件(中国)有限公司 | 一种表头、表尾生成方法和装置 |
CN109522538A (zh) * | 2018-11-28 | 2019-03-26 | 腾讯科技(深圳)有限公司 | 表格内容的自动分列方法、装置、设备及存储介质 |
CN109522350A (zh) * | 2018-10-19 | 2019-03-26 | 海闻科技有限公司 | 一种台账控件解析的方法 |
CN109656985A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 数据导入方法、系统、终端及存储介质 |
CN109743353A (zh) * | 2018-12-04 | 2019-05-10 | 河南高通物联网有限公司 | 一种基于物联网的数据转换方法 |
CN110119379A (zh) * | 2019-05-09 | 2019-08-13 | 海闻科技有限公司 | 一种对银行流水数据自动解析方法及装置、存储介质 |
-
2020
- 2020-09-29 CN CN202011054965.0A patent/CN112364611A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706775A (zh) * | 2009-12-09 | 2010-05-12 | 金蝶软件(中国)有限公司 | 一种表头、表尾生成方法和装置 |
CN109656985A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 数据导入方法、系统、终端及存储介质 |
CN109522350A (zh) * | 2018-10-19 | 2019-03-26 | 海闻科技有限公司 | 一种台账控件解析的方法 |
CN109522538A (zh) * | 2018-11-28 | 2019-03-26 | 腾讯科技(深圳)有限公司 | 表格内容的自动分列方法、装置、设备及存储介质 |
CN109743353A (zh) * | 2018-12-04 | 2019-05-10 | 河南高通物联网有限公司 | 一种基于物联网的数据转换方法 |
CN110119379A (zh) * | 2019-05-09 | 2019-08-13 | 海闻科技有限公司 | 一种对银行流水数据自动解析方法及装置、存储介质 |
Non-Patent Citations (3)
Title |
---|
BCU_LYG: "Python_Pandas", pages 1, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_42216894/article/details/105385844> * |
LIUYUNSHENGSIR: "python3比较两个excel表头的异同列", pages 1, Retrieved from the Internet <URL:blog.csdn.net/liuyunshengsir/article/details/103100854> * |
梅山学子: "python csv统计某一列的频率,插入图表", pages 1, Retrieved from the Internet <URL:https://blog.csdn.net/LeonTom/article/details/107673353> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113901214A (zh) * | 2021-10-08 | 2022-01-07 | 北京百度网讯科技有限公司 | 表格信息的提取方法、装置、电子设备及存储介质 |
CN113901214B (zh) * | 2021-10-08 | 2023-11-17 | 北京百度网讯科技有限公司 | 表格信息的提取方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558575B (zh) | 在线表格编辑方法、装置、计算机设备及存储介质 | |
CN107704539B (zh) | 大规模文本信息批量结构化的方法及装置 | |
CN111258966A (zh) | 一种数据去重方法、装置、设备及存储介质 | |
CN102426609A (zh) | 一种基于MapReduce编程架构的索引生成方法和装置 | |
CN112445596B (zh) | 基于多线程的数据导入方法、系统及存储介质 | |
US10489117B2 (en) | Method and apparatus for generating random character string | |
CN103942292A (zh) | 虚拟机镜像文件处理方法、装置及系统 | |
CN111580965A (zh) | 数据请求的处理方法及系统 | |
CN112307512A (zh) | 一种日志脱敏方法、装置及存储介质 | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN111858730A (zh) | 一种图数据库的数据导入导出装置、方法、设备及介质 | |
CN112015806A (zh) | 区块链存储数据的方法及装置 | |
CN112613271A (zh) | 数据分页方法、装置、计算机设备及存储介质 | |
CN113282854A (zh) | 数据请求响应方法、装置、电子设备及存储介质 | |
CN115391439A (zh) | 文档数据导出方法、装置、电子设备和存储介质 | |
CN112364611A (zh) | 一种高性能的表格导入的方法 | |
CN114036914A (zh) | 一种表格数据处理方法、装置、电子设备及存储介质 | |
CN116680315A (zh) | 数据离线处理方法、装置、电子设备及存储介质 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN115687392A (zh) | 一种sql语句的优化执行方法、装置、电子设备及介质 | |
CN115310127A (zh) | 一种数据脱敏方法及装置 | |
CN114461606A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN109213821B (zh) | 数据处理方法及系统 | |
CN117406967B (zh) | 组件识别方法、装置、电子设备及存储介质 | |
CN110134691B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220509 Address after: No. 36 and 37, 11th floor, Seattle business building, No. 69, Xi'an south road, Jinniu District, Chengdu, Sichuan 610000 Applicant after: SICHUAN BUSINESS EASY CO.,LTD. Address before: No. 1506, 15th floor, unit 1, building 2, No. 1537, middle section of Jiannan Avenue, high tech Zone, Chengdu, Sichuan 610000 Applicant before: Chengdu Shangtong Digital Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |