关于后端:Spring-Boot框架下实现Excel导入导出

57次阅读

共计 2340 个字符,预计需要花费 6 分钟才能阅读完成。

摘要:本文由葡萄城技术团队于思否原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供业余的开发工具、解决方案和服务,赋能开发者。

前言

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是用来简化新 Spring 利用的初始搭建以及开发过程。该框架应用了特定的形式来进行配置,从而使开发人员不再须要定义样板化的配置。明天咱们就应用纯前对按表格控件带大家理解,如何在 Spring Boot 框架下实现 Excel 服务端导入导出。

1.IDEA 创立 SpringBoot 我的项目

1.1 Spring Initializr

想要在 IDEA 下疾速搭建一个 SpringBoot 我的项目,能够应用 Spring Initializr 工具作为脚手架。

进入 IDEA 后,在左侧菜单中能够找到 Plugins,点击后,在上方的搜寻框中输出 Spring Initializr。

之后点击右上角的绿色 Install 按钮进行装置。

装置结束后,在 New Project 的时候就会多一个 Spring Initializr 的选项。

1.2 SpringBoot 我的项目的创立

Project SDK:依据理论利用状况抉择用于配置我的项目所依赖的 Java SDK。

Choose Spring Initializr Server:抉择一个 Spring Initializr 服务器,一般来说都抉择默认的。

GroupId:个别分为多个段,第一段为域,第二段为公司名称。例如:org.apache,com.grapecity。

ArtifactId:是我的项目的惟一标识符,在理论开发中个别对应我的项目的名称,就是我的项目根目录的名称。

Group Id,Artfact Id 是保障我的项目唯一性的标识,一般来说如果我的项目打包上传至 maven 这样的包治理仓库中。在搜寻你的我的项目时,Group Id,Artfact Id 是必要的条件。

Version:版本号,默认 0.0.1-SNAPSHOT。SNAPSHOT 代表不稳固的版本,与之绝对的有 RELEASE。

Project type:工程的类型,maven 工程还是 gradle 工程。

Language:语言(Java,Kotlin,Groovy)。

Packaging:Jar 包还是 War 包。

Java version:语法版本,与 Project SDK 不同,Project SDK 是理论用到的 JDK。Java version 指的是语法版本。一般来说语言个性不能比 SDK 高。比方 SDK 版本是 11,语法抉择 8。那么理论我的项目中只能应用 java 8 的语法。反之 SDK 版本是 8,语法选 11 就有问题了。个别状况下都会与 SDK 保持一致。

Project name:项目名称

Project description:我的项目形容

Package name:包名

第三局部依据我的项目的理论需要去配置。

第四局部:

设置项目名称与门路。

2. 前端配置

思考到导入导出性能须要对 Excel 具备较高的还原度,这里应用了 SpreadJS 组件,通过 SpreadJS 组件的 ExcelIO 性能,进行 Excel 的导入与导出。SpreadJS 是一款纯前端的组件,与后端齐全解耦,能够完满的整合到 SpringBoot 工程中。

2.1 前端页面创立

在 static 目录下建设 index.html 文件,用来绘制前端页面。如果用了 thymeleaf 也能够将文件建设在 templates 目录中。

2.1 SpreadJS 组件引入和初始化

在 header 中引入 SpreadJS 相干的 css 与 js 援用。

创立 SpreadJS 对应的 DOM 对象。

在 JS 中初始化 SpreadJS 和导入导出 Excel 相干的 ExcelIO 对象。

通过按钮点击进行服务端导入与导出。

导入导出事件处理,在事件中发送申请与服务端进行连贯。

导入原理:

将服务端的文件以文件流的模式传输至前端,前端通过 ExcelIO 将后果导入后果出现值 SpreadJS 中,所以导入的传递的参数是一个文件门路。留神该门路是文件在服务端或者工程中的一个门路。

导出原理:

通过 SpreadJS ExcelIO 的性能将内容导出成 Excel 的 blob 流。之后将 blob 流传至服务器端,在服务器端进行保留 Excel 文件的操作。

3. 后端配置

创立后端 controller,可依照本身我的项目的包的层级分类进行创立。

构建服务端的导入导出办法和相干逻辑。

服务器端导入:

因为前端传入的是一个文件的门路,所以参数这里咱们须要一个字符串类型的参数去接管。

另外,咱们会将流传到前端,所以会将流写到 response 中,所以参数中还须要 response 对象,办法自身不须要返回,返回空即可。原理是通过 inputStream 读取文件后,将其写入 response 的 outputStream 中。

导出到服务器:

因为前端传入传入的是保留文件的名称以及文件 blob 文件流。服务器端须要两个参数,String 用来接管文件名称,MultipartFile 对象用来接管 blob 文件流。后端承受到文件流之后通过 transferTo 办法在指定目录下根军传来的 fileName 转存成新的文件。

4. 测试运行

将工程跑起来之后进入主页面,显示如下:

点击服务端导入按钮,从服务器端下载指定的 Excel 文件并关上。

对该文件进行操作批改并点击服务端导出的按钮。

之后咱们去服务器端的导出门路下查看,发下文件存在,用 Excel 关上文件后发现,批改后的内容健在并且其余内容显示均无问题。

到这里咱们就实现了 Spring Boot 框架下实现 Excel 服务端导入导出。

拓展浏览

React + Springboot + Quartz,从 0 实现 Excel 报表自动化

电子表格也能做购物车?简略三步就能实现

应用纯前端类 Excel 表格控件 SpreadJS 构建企业现金流量表

正文完
 0