poi封装及导入下载服务资源[根据类名称资源下载方式]

2023-10-24 08:32

本文主要是介绍poi封装及导入下载服务资源[根据类名称资源下载方式],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里直接贴代码了

导入Excel

前端上传

<from enctype="multipart/from-data" method="post" action="/import">

<input type="file" name="file"/>

<input type="submit" value="上传"/>

</from>

上传文件的参数名为file

后端接收

@RequestMapping("/import") public void importexcle(@ExcelRequestBody(titleRows = 2, headRows = 1, requireClass = City.class) List<City>vo) throws Exception {for (int i = 0; i < vo.size(); i++) {System.out.println(vo.get(i));

//做相应的数据处理

    } }

在SpringMVC的方法内使用@ExcelRequestBody注解,titleRow为标题的行数,headRows为标题栏的行数,通常为1。requireClass为 Excel类数据需要转换成的对象。

看一下对象的示例:

@ExcelTarget("ItsmSystemUserBean")
@Table(name = "itsm_sys_user")
public class ItsmSystemUserBean {@Id
    @GeneratedValue(generator = "JDBC")private String id;

    /**
     * 姓名
     */
    @NotEmpty
    @Excel(name = "姓名 *", orderNum = "2", width = 20,needMerge = false)private String userName;

    /**
     * 登录id
     */
    @NotEmpty
    @Excel(name = "登录id *", orderNum = "3", width = 18,needMerge = false)private String loginName;


导入导出Excel的对象上使用@ExcelTarget注解,并指定一个唯一的id。
在需要进行处理的字段上使用@Excel注解,name为Excel表格的head,orderNum为字段的顺序,不可重复!
needMerge用于合并,通常不需要使用。更详细的用法可参考:http://www.afterturn.cn/doc/easypoi.html
3、导出Excel
在需要导出Excel的方法上添加@ExportExcel(fileName = "测试")注解。
fileName用于指定下载的文件名称。excelType可用于指定Excel版本,默认为03格式。
示例:

ExportParams的title为标题,secondTitle为二级标题,sheetName为sheet的名称。
使用ExcelExportUtil.exportExcel方法导出数据到指定对象,最后写入response。此行代码后不可以有任何代码!导出方法的返回值为void
/**
 * 导出Excel,这里没有使用向模版填充数据
 * <p>
 * <br>【请求地址】/itsm/system/sso/user/exportExcelUser
 *
 * @param userIds 用户id 字符串
 * @throws IOException
 */
@RequestMapping("/exportExcelUser")
@ExportExcel(fileName = "人员管理基本信息")
public void exportExcelUser(HttpServletResponse response, @RequestParam(name = "userIds") List<String> userIds) throws IOException {logger.info(this.getClass().getName());
    List<ItsmSystemUserBean> userBeanList = this.userService.queryUserBeanById(userIds);
    ExportParams params = new ExportParams("人员管理基本信息", "*为必填", "人员基本信息");
    ExcelExportUtil.exportExcel(params, ItsmSystemUserBean.class, userBeanList).write(response.getOutputStream());
}

=========================第二篇=============================
下载服务资源
1.controlle方法体
/**
 * 下载导入模版
 * <br>【请求地址】/itsm/system/sso/user/downloadExcelUser
 *
 * @param
 * @throws IOException
 */
@RequestMapping("/downloadExcelUser")
public void downloadExcelUser(HttpServletRequest request, HttpServletResponse response) throws Exception {//multipart/form-data  设置文件ContentType类型,这样设置,会自动判断下载文件类型
    ResponseUtill.download(request, response, "人员管理基本信息.xls", "multipart/form-data");
}
2.引用工具类
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;

/**
     * 文件下载.
     *
     * @param request
     * @param response
     * @param name 文件名.
     * @param contentType 文件类型.
     */
    public static void download(HttpServletRequest request,
                                HttpServletResponse response,
                                String name,
                                String contentType) throws Exception {// 最终返回给浏览器的文件名.
        String finalFileName = null;

        final String userAgent = request.getHeader("USER-AGENT");
        // IE浏览器.
        if(StringUtils.contains(userAgent, "MSIE")) {finalFileName = URLEncoder.encode(name,"UTF8");
        }// Google,火狐浏览器
        else if(StringUtils.contains(userAgent, "Mozilla")) {finalFileName = new String(name.getBytes(), "ISO8859-1");
        }// 其他浏览器.
        else{finalFileName = URLEncoder.encode(name,"UTF8");
        }// 告诉浏览器用什么软件可以打开此文件.
        response.setHeader("content-Type", contentType);
        // 下载文件的默认名称.
        response.setHeader("Content-Disposition", "attachment;filename=" + finalFileName);
        // 编码.
        response.setCharacterEncoding("UTF-8");

        Resource resource = new ClassPathResource(name);
        IOUtils.copy(resource.getInputStream(), response.getOutputStream());
        response.flushBuffer();
    }}

这篇关于poi封装及导入下载服务资源[根据类名称资源下载方式]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273970

相关文章

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务