如何在Spring Boot框架下实现高效的Excel服务端导入导出?

spring,boot,excel · 浏览次数 : 8

小编点评

前言 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。 - Group Id 和 Artifact Id:一般分为多个段,第一段为域,第二段为公司名称。例如:org.apache,com.grapecity。Artifact 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。 - 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构建企业现金流量表。 归纳总结: 本篇文档详细介绍了如何在Spring Boot框架下实现Excel服务端导入导出。首先通过IDEA创建SpringBoot项目,并根据实际需求配置各项参数。其次,介绍了前端页面的设计,包括如何引入SpreadJS组件和实现导入导出功能。最后,详细描述了后端配置,包括服务器端导入导出方法和相关逻辑。通过测试,验证了实现的正确性。

正文

前言

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构建企业现金流量表

与如何在Spring Boot框架下实现高效的Excel服务端导入导出?相似的内容:

如何在Spring Boot框架下实现高效的Excel服务端导入导出?

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

Spring Boot框架下实现Excel服务端导入导出

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

SpringBoot项目实现日志打印SQL明细(包括SQL语句和参数)几种方式

前言 我们在开发项目的时候,都会连接数据库。有时候遇到问题需要根据我们编写的SQL进行分析,但如果不进行一些开发或者配置的话,这些SQL是不会打印到控制台的,它们默认是隐藏的。下面给大家介绍几种常用的方法。 第一种、代码形式 Mybatis框架是Java程序员最常用的数据库映射框架,MyBatis

Java Agent场景性能测试分析优化经验分享

摘要:本文将以Sermant的SpringBoot 注册插件的性能测试及优化过程为例,分享在Java Agent场景如何进行更好的性能测试优化及在Java Agent下需要着重注意的性能陷阱。 作者:栾文飞 高级软件工程师 一、背景介绍 Sermant是一个主打服务治理领域的Java Agent框架

[转帖]SpringBoot项目banner.txt生成教程

文章目录 近期在做毕业设计,后端框架用到了SpringBoot,可以自己个性化设置banner.txt 地址:https://www.bootschool.net/ascii 可以直接下载,然后直接将banner.txt放到resource目录下 如果想要显示SpringBoot版本等信息,可以添加

Java与React轻松导出Excel/PDF数据

前言 在B/S架构中,服务端导出是一种高效的方式。它将导出的逻辑放在服务端,前端仅需发起请求即可。通过在服务端完成导出后,前端再下载文件完成整个导出过程。服务端导出具有许多优点,如数据安全、适用于大规模数据场景以及不受前端性能影响等。 本文将使用前端框架React和服务端框架Spring Boot搭

我的第一个项目(三):注册登陆功能(后端)

好家伙,前端出了点bug 我们来搞定后端先: 后端我们用的框架是Spring boot 数据库:MySQl 代码已开源,连接在最后 新建项目: 只点Java Web 项目目录如下: 1.首先,我们在pom.xml文件中导入第三方包: web服务,mysql连接驱动等一系列包 pom.xml文件: <

SpringBoot项目从0到1配置logback日志打印

大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 以下是正文! 一、写文背景 我们在写后端项目的时候,日志打印是必需的。支持SpringBoot项目的日志框架一般有log4j、logback,这二者各

如何在Spring Boot中配置MySQL数据库连接数

1.如何在Spring Boot中配置MySQL数据库的连接数 1.1主要配置 在Spring Boot中配置MySQL数据库连接数通常涉及到两个主要的配置: (1)数据源配置:这通常是在application.properties或application.yml文件中完成的,用于设置数据源的基本参

Spring Boot中发送邮件时,如何让发件人显示别名

之前,我们通过一系列文章,介绍了如何在Spring Boot中发送邮件: 发送邮件 添加附件 引用静态资源 邮件模版 已经包含了大部分的应用场景。但最近DD在做YouTube中文配音的时候,碰到一个问题: 如上图所示,收件人在客户端收到的时候,显示的名称是邮箱的前缀,而不是我们的产品名称,也就是邮箱