当前位置: 首页 > Web前端 > JavaScript

SpringBoot框架下Excel服务器的导入导出

时间:2023-03-27 15:54:29 JavaScript

SpringBoot是Pivotal团队提供的全新框架,旨在简化新的Spring应用的初始构建和开发过程。该框架使用特定的配置方法,使开发人员不再需要定义样板配置。今天我们就用纯前后台的表格控件来给大家介绍下如何在SpringBoot框架下实现Excel服务端的导入导出。一、IDEA创建SpringBoot项目1.1SpringInitializr如果想在IDEA下快速搭建一个SpringBoot项目,可以使用SpringInitializr工具作为脚手架。进入IDEA后,在左侧菜单中可以找到Plugins。点击后,在上面的搜索框中输入SpringInitializr。然后点击右上角绿色的安装按钮进行安装。安装完成后,NewProject中会有一个SpringInitializr的选项。1.2SpringBoot工程的创建工程SDK:根据实际应用情况选择用于配置工程的JavaSDK。ChooseSpringInitializrServer:选择一个SpringInitializr服务器,一般来说选择默认即可。GroupId:一般分为多个段,第一段是域名,第二段是公司名。例如:org.apache、com.grapecity。ArtifactId:项目的唯一标识。在实际开发中,一般对应于项目的名称,即项目的根目录名称。GroupId和ArtfactId是保证项目唯一性的标识符。一般来说,如果项目打包上传到maven等包管理仓库。搜索项目时,GroupId和ArtfactId是必要条件。Version:版本号,默认0.0.1-SNAPSHOT。SNAPSHOT代表不稳定版本,与RELEASE相对。项目类型:项目的类型,maven项目或gradle项目。语言:语言(Java、Kotlin、Groovy)。打包:Jar包或War包。Java版本:语法版本,区别于ProjectSDK,是实际使用的JDK。Java版本是指语法版本。一般来说,语言特性不能高于SDK。比如SDK版本是11,语法是8,那么在实际项目中只能使用Java8语法。反之,如果SDK版本是8,语法是11就会有问题,一般会和SDK保持一致。项目名称:项目名称项目描述:项目描述包名称:包名称第三部分根据项目实际需要配置。第四部分:设置项目名称和路径。2、前端配置考虑到导入导出功能需要对Excel有较高的还原度,这里使用了SpreadJS组件,利用SpreadJS组件的ExcelIO函数实现Excel的导入导出。SpreadJS是一个纯前端组件,与后端完全解耦,可以完美集成到SpringBoot项目中。2.1前端页面创建在static目录下创建一个index.html文件,用于绘制前端页面。如果您使用thymeleaf,您还可以在模板目录中创建文件。2.1SpreadJS组件介绍及初始化在header中引入SpreadJS相关的css和js引用。创建SpreadJS对应的DOM对象。初始化SpreadJS,在JS中导入导出Excel相关的ExcelIO对象。通过单击按钮进行服务器端导入和导出。导入导出事件处理,在事件中发送请求连接服务器。导入原理:将文件从服务器以文件流的形式传输到前端,前端通过ExcelIO将结果导入到SpreadJS中,所以导入时传入的参数是一个文件路径。注意路径是文件在服务器或项目中的路径。导出原理:通过SpreadJSExcelIO的功能将内容导出到Excelblob流中。之后将blob传给服务器,在服务器上进行保存Excel文件的操作。3.后端配置创建后端controller,可以根据自己项目的包层次分类创建。在服务端构建导入导出方法及相关逻辑。服务端导入:由于前端传入的是一个文件的路径,所以我们需要一个字符串类型的参数来接收这里的参数。另外我们会stream到前端,所以我们会把stream写到response里面,所以参数里也需要response对象,方法本身不需要return,returnempty即可。原理是通过inputStream读取文件,写入到response的outputStream中。导出到服务器:由于前端传入的是保存的文件名和文件blob文件流。服务端需要两个参数,String用于接收文件名,MultipartFile对象用于接收blob文件流。后端收到文件流后,通过transferTo方法将指定目录下根军的fileName传输到一个新文件中。4.试运行项目运行后,进入主页面,显示如下:点击服务器端的导入按钮,从服务器端下载指定的Excel文件并打开。修改文件,点击服务器端的导出按钮。之后我们去服务器端的导出路径查看,发现该文件是存在的。用Excel打开文件后,我们发现修改后的内容还在,其他内容显示也没有问题。至此我们就实现了SpringBoot框架下Excelserver的导入导出。延伸阅读React+Springboot+Quartz,从0实现Excel报表自动化电子表格也能当购物车吗?使用纯前端Excel表格控件SpreadJS简单三步即可构建企业现金流量表