温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java实现导出excel文件的方法

发布时间:2020-10-28 10:05:25 来源:亿速云 阅读:274 作者:小新 栏目:编程语言

这篇文章主要介绍java实现导出excel文件的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

实现方法如下:

1、首先新建一个SpringBoot项目

2、导入依赖–pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">	<modelVersion>4.0.0</modelVersion>	<parent>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-starter-parent</artifactId>	<version>2.2.6.RELEASE</version>	<relativePath/> <!-- lookup parent from repository -->	</parent>	<groupId>com.briup</groupId>	<artifactId>demo3</artifactId>	<version>0.0.1-SNAPSHOT</version>	<packaging>war</packaging>	<name>demo3</name>	<description>Demo project for Spring Boot</description>	<properties>	<java.version>1.8</java.version>	</properties>	<dependencies>	<dependency>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-starter-web</artifactId>	</dependency>	<dependency>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-starter-tomcat</artifactId>	<scope>provided</scope>	</dependency>	<dependency>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-starter-test</artifactId>	<scope>test</scope>	<exclusions>	<exclusion>	<groupId>org.junit.vintage</groupId>	<artifactId>junit-vintage-engine</artifactId>	</exclusion>	</exclusions>	</dependency>	<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency>	</dependencies>	<build>	<plugins>	<plugin>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-maven-plugin</artifactId>	</plugin>	</plugins>	</build> </project>

3、建各种类

新建实体类

记得添加get/set方法

public class User {	private String username;	private String email;	private String createTime;	private String LastLoginTime;	private String roleName;	private String enable;	public User() {	super();	} }

新建接口Service

import java.util.List; public interface UserService {	public List<User> findAllUser(); }

新建实现Service接口的Impl

import java.util.List; public class UserServiceImpl implements UserService {	@Override	public List<User> findAllUser() {	User user = new User();	return null;	} }

新建ExcelUtil工具类

import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ExcelUtil { public static HSSFWorkbook getHSSFWorkbook(String sheetName,String sheetName1,String sheetName2, String []title, String[] content,String[] app){ // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetName); HSSFSheet sheet1 = wb.createSheet(sheetName1); HSSFSheet sheet2 = wb.createSheet(sheetName2); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 HSSFRow row = sheet.createRow(0); HSSFRow row1 = sheet1.createRow(0); HSSFRow row2 = sheet2.createRow(0); // 第四步,创建单元格样式,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 //声明单元格 HSSFCell cell = null; //创建标题 for(int i=0;i<title.length;i++){ //创建一个单元格 cell = row.createCell(i); //给单元格赋值 cell.setCellValue(title[i]); //给单元格设置样式 cell.setCellStyle(style); } //创建标题 for(int i=0;i<title.length;i++){ //创建一个单元格 cell = row1.createCell(i); //给单元格赋值 cell.setCellValue(title[i]); //给单元格设置样式 cell.setCellStyle(style); } //创建内容 if (content != null && content.length > 0){	for(int i=0;i<content.length;i++){	row = sheet.createRow(i + 1);	for(int j=0;j<content.length;j++){ //将内容按顺序赋给对应的列对象 row.createCell(j).setCellValue(content[j]); } } } if (content != null && content.length > 0){	for(int i=0;i<content.length;i++){	row1 = sheet1.createRow(i + 1);	for(int j=0;j<content.length;j++){ //将内容按顺序赋给对应的列对象 row1.createCell(j).setCellValue(content[j]); } } } if (app != null && app.length > 0){	for(int i=0;i<app.length;i++){	row2 = sheet2.createRow(i + 1);	for(int j=0;j<app.length;j++){ //将内容按顺序赋给对应的列对象 row2.createCell(j).setCellValue(app[j]); } } } return wb; } }

新建Controller类

import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/MyTest") public class HelloController { @ResponseBody @RequestMapping("/hello") public void export(@RequestBody(required = false) User user,String username,HttpServletResponse response) throws Exception { if (user ==null && !StringUtils.isEmpty(username)){ //GET 请求的参数 user = new User(); user.setUsername(username); } UserService userService = new UserServiceImpl();	//获取数据 List<User> list = userService.findAllUser(); //excel标题 String[] title = {"姓名", "邮箱", "创建时间", "最近登录时间","角色","是否可用"}; //excel文件名 String fileName = System.currentTimeMillis() + ".xls"; //sheet名 String sheetName = "用户信息"; String sheetName1 = "hello"; String sheetName2 = "xixi"; //没有数据就传入null吧,Excel工具类有对null判断 String[] content= {"ali","aaa","ddd","aaa","aaa","aaaa"}; String[] app= {"bbbb","bbbb","bbbb","bbbb","bbbb","bbbb",}; if (list != null && list.size() > 0){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < list.size(); i++) { User obj = list.get(i); content[1] = obj.getUsername(); content[1] = obj.getEmail(); content[2] = obj.getCreateTime() == null ? "" : sdf.format(obj.getCreateTime()); content[3] = obj.getLastLoginTime() == null ? "": sdf.format(obj.getLastLoginTime()); content[4] = obj.getRoleName(); } } if (list != null && list.size() > 0){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < list.size(); i++) { User obj = list.get(i); app[1] = obj.getUsername(); app[1] = obj.getEmail(); app[2] = obj.getCreateTime() == null ? "" : sdf.format(obj.getCreateTime()); app[3] = obj.getLastLoginTime() == null ? "": sdf.format(obj.getLastLoginTime()); app[4] = obj.getRoleName(); } } //创建HSSFWorkbook HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,sheetName1,sheetName2, title, content,app); // HSSFWorkbook wb1 = ExcelUtil.getHSSFWorkbook(sheetName1, title, content); //响应到客户端 try { fileName = new String(fileName.getBytes(), "UTF-8"); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } } }

设置application.properties
server.port=8081
最重要的一定要注意:Application类一定要在最外侧的包中!!!

4、最后访问

localhost:8081/MyTest/hello

结果:

java实现导出excel文件的方法

没有写前端,可以写一个html,设置一个a标签,点击事件。

以上是java实现导出excel文件的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI