CN112487329A - 基于java实现html表格导出excel的方法 - Google Patents
基于java实现html表格导出excel的方法 Download PDFInfo
- Publication number
- CN112487329A CN112487329A CN202011478651.3A CN202011478651A CN112487329A CN 112487329 A CN112487329 A CN 112487329A CN 202011478651 A CN202011478651 A CN 202011478651A CN 112487329 A CN112487329 A CN 112487329A
- Authority
- CN
- China
- Prior art keywords
- excel
- html
- defining
- java
- attribute
- 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 34
- 230000006870 function Effects 0.000 claims description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000009795 derivation Methods 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供一种基于JAVA实现HTML表格导出EXCEL的方法,包括以下步骤:1)、定义需要展示的表格HTML代码;2)、将表格HTML代码发送到服务器端:3)、服务器端接收到客户端发送的表格HTML代码,使用JAVA解析表格的HTML元素;JAVA使用JSOUP将表格HTML代码的各元素解析出来作为TABLE信息;4)、根据TABLE信息生成EXCEL文件。本发明是通过JSOUP解析出来的HTML元素(HTML元素可根据业务需要进行自定义扩展),组装出POI生成EXCEL所需的元素,来实现HTML直接导出为EXCEL文件的功能。本发明将使用服务器端技术JAVA来实现HTML表格导出EXCEL,用户可以在页面一键生成EXCEL文件,且不再依赖客户端浏览器及版本,也不存在安全隐患。
Description
技术领域
本发明涉及计算机技术领域,一种使用JAVA语言开发的将HTML格式的表格转换为EXCEL表格文件的方法。
背景技术
在各种浏览器访问的系统中,往往有大量的数据需要生成到EXCEL文件,方便业务人员离线对数据进行加工、传递、分析、打印等。而HTML是目前运用最广的前端展示语言,几乎所有的线上系统的界面展示都会使用,所以如果能将HTML中展示的内容直接生成到EXCEL,生成的EXCEL的内容即用户看到的HTML界面上展示的内容,那么将给系统使用人员带来极大便利。
现有技术存在的缺点如下所示:
1、使用客户端技术,依赖客户端用户软件环境,且用户需要设置浏览器相关配置,操作复杂;
现有技术是使用前端技术JavaScript来实现HTML表格导出到EXCEL,需要客户端用户安装EXCEL,由于使用了IE浏览器专用控件ActiveX,那么该功能只能在IE浏览器中使用。
2、使用已经被淘汰的浏览器,推广难度大,应用场景小;
IE浏览器由于其局限性和不规范性,已经逐渐被市场淘汰,装机率远低于Chrome等主流浏览器,目前大量新开发的系统已不再支持老版本的IE浏览器。
3、使用已经被淘汰的前端技术,存在安全隐患;
由于JavaScript直接使用ActiveX控件存在一定的安全隐患,所以IE浏览器也默认设置是不启用,用户必须在浏览器中进行如下设置:工具->Internet选项->安全->自定义级别->将ActiveX控件设置为启用。
在公开号CN105446944A的发明专利“基于JavaScript实现HTML表格导出EXCEL的方法”这篇专利中,基于JavaScript实现HTML表格导出EXCEL的方法,是基于网页前端技术JavaScript实现HTML表格导出EXCEL的方法。实现HTML表格导出EXCEL,存在过度依赖客户端环境和用户操作、实现功能比较复杂、推广难度大、应用场景小、存在一定的安全隐患等问题。
因此,需要对现有技术进行改进。
发明内容
本发明要解决的技术问题是提供一种高效的基于JAVA实现HTML表格导出EXCEL的方法。
为解决上述技术问题,本发明提供一种基于JAVA实现HTML表格导出EXCEL的方法,包括以下步骤:
1)、定义需要展示的表格HTML代码;
2)、将表格HTML代码发送到服务器端:
3)、服务器端接收到客户端发送的表格HTML代码,使用JAVA解析表格的HTML元素;JAVA使用JSOUP将表格HTML代码的各元素解析出来作为TABLE信息;
4)、根据TABLE信息生成EXCEL文件。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:还包括步骤5):
服务器端将生成的EXCEL文件返回给客户端。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:
在步骤4)中:
JAVA使用POI将步骤3)解析得到的TABLE信息生成EXCEL文件。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:
在步骤1)中;
定义需要展示的表格HTML代码包括HTML中定义表格的标签及其相关子标签。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:
在步骤1)中;
定义表格的TABLE标签,定义表格行的TR标签,定义表格标题列的TH标签,以及定义表格列的TD标签,每个标签定义相关属性参数来达到各种表格展示效果,width属性定义展示的宽度,height属性定义展示的高度,rowspan属性定义需要合并的行,colspan属性定义需要合并的列,通过style属性定义字体、字体大小、颜色、位置信息。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:
在步骤1)中,根据服务器端解析HTML生成EXCEL的自定义规则,扩展标签的属性,实现一些更高级的功能;
在TABLE标签上定义nextSheet=”true”属性,则可实现将表格导出到多个sheet页中,定义sheetName=”sheet页名称”,这可实现自定义EXCEL文件中sheet页的名称;在TD标签中定义dataType=”number”属性,可自定义导出到EXCEL中的数据的类型是数字还是文本。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:
在步骤3)中;
通过获取TR、TD、TH元素来定义EXCEL的行和列,通过获取rowspan和colspan元素来计算EXCEL的合并行和合并列;
通过TD或TH元素的TEXT属性获取需要输出到EXCEL表格中的数据,需要输出到EXCEL表格中的数据即用户在页面上的表格中所看到的数据信息;
通过TD或TH元素的STYLE属性获取表格的样式来定义EXCEL表格的宽度、高度、颜色、字号、展示位置等信息。
作为对本发明基于JAVA实现HTML表格导出EXCEL的方法的改进:
通过TABLE标签中的nextSheet=true属性,定义在一个EXCEL文件中生成多个sheet页
通过TD标签中的dataType=number属性,定义该列生成的EXCEL数据格式为数字类型。
本发明是通过JSOUP解析出来的HTML元素(HTML元素可根据业务需要进行自定义扩展),组装出POI生成EXCEL所需的元素,来实现HTML直接导出为EXCEL文件的功能。
本发明基于JAVA实现HTML表格导出EXCEL的方法的技术优势为:
本发明与CN105446944A相比,通过服务器端解析HTML表格生成EXCEL的方法对客户端环境无任何依赖,使用该技术开发的系统应用推广范围更广,更加安全可靠,可做到用户无感操作(用户只用在页面点击一下鼠标即可实现HTML表格生成EXCEL文件并下载,不用再进行复杂的浏览器设置)。
本发明将使用服务器端技术JAVA来实现HTML表格导出EXCEL,用户可以在页面一键生成EXCEL文件,且不再依赖客户端浏览器及版本,也不存在安全隐患。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1是基于JAVA实现HTML表格导出EXCEL的方法的流程示意图。
具体实施方式
下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此。
实施例1、基于JAVA实现HTML表格导出EXCEL的方法,如图1所示;
本发明的基于JAVA实现HTML表格导出EXCEL文件主要分为定义HTML表格、将HTML表格代码发送到服务器端、解析表格的HTML元素、生成EXCEL文件、下载EXCEL文件几个步骤。其中:
1)、定义HTML表格:根据各业务场景,定义需要展示的表格HTML代码。
定义需要展示的表格HTML代码主要包括HTML中定义表格的标签及其相关子标签,比如定义表格的TABLE标签,定义表格行的TR标签,定义表格标题列的TH标签,以及定义表格列的TD标签等,每个标签也可定义相关属性参数来达到各种表格展示效果,比如width属性定义展示的宽度,height属性定义展示的高度,rowspan属性定义需要合并的行,colspan属性定义需要合并的列,还可以通过style属性定义字体、字体大小、颜色、位置等信息,具体可参考标准的HTML和CSS规范。
由于HTML规范允许自定义标签以及标签属性,所以此处可以根据服务器端解析HTML生成EXCEL的自定义规则,扩展标签的属性,实现一些更高级的功能,比如在TABLE标签上定义nextSheet=”true”属性,则可实现将表格导出到多个sheet页中,定义sheetName=”sheet页名称”,这可实现自定义EXCEL文件中sheet页的名称;还比如在TD标签中定义dataType=”number”属性,可自定义导出到EXCEL中的数据的类型是数字还是文本等,以此类推可以实现更多类似功能。
2)、将表格HTML代码发送到服务器端:用户点击【生成EXCEL】按钮或其它需要将看到的表格导出到EXCEL文件的按钮,客户端将表格HTML代码通过服务器端开放的接口发送给服务器。
3)、解析表格的HTML元素:服务器端接收到客户端发送的表格HTML代码,使用JAVA解析表格的HTML元素。JAVA使用JSOUP将表格HTML代码的各元素解析出来;
然后通过获取TR、TD、TH元素来定义EXCEL的行和列,通过获取rowspan和colspan元素来计算EXCEL的合并行和合并列;
通过TD或TH元素的TEXT属性获取需要输出到EXCEL表格中的数据,需要输出到EXCEL表格中的数据即用户在页面上的表格中所看到的数据信息。比如一个学生信息数据的表格,包含了标题行:姓名、性别、班级,以及10条学生信息,那么这里描述的数据就是,这个表格中所有的标题以及10条对应的学生信息。
通过TD或TH元素的STYLE属性获取表格的样式来定义EXCEL表格的宽度、高度、颜色、字号、展示位置等信息。
EXCEL表格中的数据、EXCEL表格的宽度、高度、颜色、字号、展示位置等信息,这些信息定义了表格中的数据,表格以及表格中数据的展示效果,比如数据行的高度、数据列的宽度,文字的字体是宋体还是微软雅黑等,文字的颜色是红色还是黑色等,文字是居左还是居右展示等,生成EXCEL文件时同样会按照此效果进行生成。这些信息是共同作为TABLE信息的。
此处也可利用HTML标签语言的特性,在步骤1中自定义一些HTML表格属性,实现一些更高级的功能,比如在TABLE标签中定义nextSheet=true属性,则可实现在一个EXCEL文件中生成多个sheet页;还比如在TD标签中定义dataType=number属性,可以自定义该列生成的EXCEL数据格式为数字类型等。nextSheet=true属性和dataType=number属性等也共同作为TABLE信息。
4)、生成EXCEL文件:JAVA使用POI将解析完毕的TABLE信息生成EXCEL文件。
5)、下载EXCEL文件:服务器端将生成的EXCEL文件返回给客户端,用户可直接下载文件。
最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (8)
1.基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:包括以下步骤:
1)、定义需要展示的表格HTML代码;
2)、将表格HTML代码发送到服务器端:
3)、服务器端接收到客户端发送的表格HTML代码,使用JAVA解析表格的HTML元素;JAVA使用JSOUP将表格HTML代码的各元素解析出来作为TABLE信息;
4)、根据TABLE信息生成EXCEL文件。
2.根据权利要求1所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:还包括步骤5):
服务器端将生成的EXCEL文件返回给客户端。
3.根据权利要求2所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:
在步骤4)中:
JAVA使用POI将步骤3)解析得到的TABLE信息生成EXCEL文件。
4.根据权利要求3所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:
在步骤1)中;
定义需要展示的表格HTML代码包括HTML中定义表格的标签及其相关子标签。
5.根据权利要求4所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:
在步骤1)中;
定义表格的TABLE标签,定义表格行的TR标签,定义表格标题列的TH标签,以及定义表格列的TD标签,每个标签定义相关属性参数来达到各种表格展示效果,width属性定义展示的宽度,height属性定义展示的高度,rowspan属性定义需要合并的行,colspan属性定义需要合并的列,通过style属性定义字体、字体大小、颜色、位置信息。
6.根据权利要求5所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:
在步骤1)中,根据服务器端解析HTML生成EXCEL的自定义规则,扩展标签的属性,实现一些更高级的功能;
在TABLE标签上定义nextSheet=”true”属性,则可实现将表格导出到多个sheet页中,定义sheetName=”sheet页名称”,这可实现自定义EXCEL文件中sheet页的名称;在TD标签中定义dataType=”number”属性,可自定义导出到EXCEL中的数据的类型是数字还是文本。
7.根据权利要求6所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:
在步骤3)中;
通过获取TR、TD、TH元素来定义EXCEL的行和列,通过获取rowspan和colspan元素来计算EXCEL的合并行和合并列;
通过TD或TH元素的TEXT属性获取需要输出到EXCEL表格中的数据,需要输出到EXCEL表格中的数据即用户在页面上的表格中所看到的数据信息;
通过TD或TH元素的STYLE属性获取表格的样式来定义EXCEL表格的宽度、高度、颜色、字号、展示位置等信息。
8.根据权利要求7所述的基于JAVA实现HTML表格导出EXCEL的方法,其特征在于:
通过TABLE标签中的nextSheet=true属性,定义在一个EXCEL文件中生成多个sheet页
通过TD标签中的dataType=number属性,定义该列生成的EXCEL数据格式为数字类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011478651.3A CN112487329A (zh) | 2020-12-15 | 2020-12-15 | 基于java实现html表格导出excel的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011478651.3A CN112487329A (zh) | 2020-12-15 | 2020-12-15 | 基于java实现html表格导出excel的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112487329A true CN112487329A (zh) | 2021-03-12 |
Family
ID=74916322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011478651.3A Pending CN112487329A (zh) | 2020-12-15 | 2020-12-15 | 基于java实现html表格导出excel的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112487329A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733503A (zh) * | 2021-01-22 | 2021-04-30 | 浪潮卓数大数据产业发展有限公司 | 一种基于poi的html表格生成excel的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446944A (zh) * | 2015-11-12 | 2016-03-30 | 国云科技股份有限公司 | 基于JavaScript实现HTML表格导出EXCEL的方法 |
CN106815316A (zh) * | 2016-12-23 | 2017-06-09 | 北京奇虎科技有限公司 | 页面内容分享的方法、装置及移动终端 |
US20200073686A1 (en) * | 2018-08-29 | 2020-03-05 | Ernst & Young U.S. Llp | Automated software script remediation methods and systems |
-
2020
- 2020-12-15 CN CN202011478651.3A patent/CN112487329A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446944A (zh) * | 2015-11-12 | 2016-03-30 | 国云科技股份有限公司 | 基于JavaScript实现HTML表格导出EXCEL的方法 |
CN106815316A (zh) * | 2016-12-23 | 2017-06-09 | 北京奇虎科技有限公司 | 页面内容分享的方法、装置及移动终端 |
US20200073686A1 (en) * | 2018-08-29 | 2020-03-05 | Ernst & Young U.S. Llp | Automated software script remediation methods and systems |
Non-Patent Citations (1)
Title |
---|
DARK-JAZZ: "java简单实现爬虫、jsoup实现网页抓取、POI实现数据导出Excel", Retrieved from the Internet <URL:https://blog.csdn.net/Darkjazz11/article/details/79660458> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733503A (zh) * | 2021-01-22 | 2021-04-30 | 浪潮卓数大数据产业发展有限公司 | 一种基于poi的html表格生成excel的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7086002B2 (en) | System and method for creating and editing, an on-line publication | |
EP1376408B1 (en) | Extraction of information from structured documents | |
US6799299B1 (en) | Method and apparatus for creating stylesheets in a data processing system | |
US6910182B2 (en) | Method and apparatus for generating structured documents for various presentations and the uses thereof | |
US7721195B2 (en) | RTF template and XSL/FO conversion: a new way to create computer reports | |
JP4344693B2 (ja) | ブラウザの文書編集のためのシステムおよびその方法 | |
US8578265B2 (en) | Methods and apparatus for generating a dynamic document | |
US20020019837A1 (en) | Method for annotating statistics onto hypertext documents | |
US20070136316A1 (en) | Systems and methods for report design and generation | |
US20020194219A1 (en) | Method and system for cross-platform form creation and deployment | |
US20090112824A1 (en) | Method and apparatus for generating presentation configuration file of document content | |
KR20050056123A (ko) | 소프트웨어 애플리케이션에서의 네임스페이스 또는 스키마라이브러리 지원을 위한 프로그램 가능한 객체 모델 | |
US9471557B2 (en) | Client-side modification of electronic documents in a client-server environment | |
US20130117663A1 (en) | System and method for selectively displaying web page elements | |
KR20010089173A (ko) | 분산형 데이터 처리 시스템 상에서 래거시 애플리케이션에엑세스를 제공하기 위한 방법, 장치 및 컴퓨터 프로그램제조물 | |
SE517132C2 (sv) | Förfarande och system för att skapa ett PDF-dokument | |
US7475337B1 (en) | Generating structured documents by associating document elements in a first display with displayed document type definitions in a second display | |
US20110191381A1 (en) | Interactive System for Extracting Data from a Website | |
US20080005662A1 (en) | Server Device and Name Space Issuing Method | |
CN112487329A (zh) | 基于java实现html表格导出excel的方法 | |
JP4337309B2 (ja) | ブラウザ装置 | |
Blatner | Save XPress styles.(Secrets) | |
Voth | FileMaker Pro 6 Developer's Guide to XML/XSL | |
Potu et al. | Paperful to Paperless Office Forms Integration Framework | |
Aitchison | Syndicating Spatial Data |
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 |