JAVA easyExcel 导出示例 精简版

1.  引入easyExcel的maven地址

        <dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>easyexcel</artifactId>
			<version>2.2.3</version>
		</dependency>

 2.  建立导出用到的数据实体类

package com.excel.excel.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

@ContentRowHeight(17) //文本行高度
@HeadRowHeight(20)    //标题高度
@ColumnWidth(20)//行宽
@Data
public class User {
    @ExcelProperty(value = "用户姓名", index = 0)
    private String userName;
    @ExcelProperty(value = "密码", index = 1)
    private String password;
    @ExcelProperty(value = 电话号码", index = 2)
    private String telephone;
    @ExcelProperty(value = 创建日期", index = 3)
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date createDate;
}

 3. 控制层代码 此方式为浏览器直接下载  想下载到本地看第4步

package com.excel.excel.test;

import com.alibaba.excel.EasyExcel;
import com.excel.excel.entity.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@RestController
public class TestController {

    @RequestMapping("/test1")
    public void test(HttpServletResponse response) throws IOException {

        //此处改成你service层获取到的数据的List
        List<User> userList = service.getAllUserList();

        response.setContentType("application/vnd.ms-excel");
        // 对响应客户请求进行重新编码
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode("测试导出", "utf-8");
        // 为导出文件设置默认名称,这里是测试导出
        response.setHeader("Content-disposition", "attachment;filename="+fileName+".xlsx");
        EasyExcel.write(response.getOutputStream(), User.class).sheet("测试页").doWrite(userList);
   

 }
}

4.  导出下载到本地

	@RequestMapping("/test2")
    public void test2() throws IOException {

        //此处改成你service层获取到的数据的List
        List<User> userList = service.getAllUser();

        EasyExcel.write("D:/test.xlsx", User.class).sheet("测试页").doWrite(userList);
    }

=============================结束=============================

小拓展:

定义easyExcel导出的实体类属性时,如果是时间类型的,请使用Date,否则会报错!如果非得用LocalDateTime,那么请往下看。

1.  新建时间类型的转换器类(直接copy代码即可)

注意要实现的是com.alibaba.excel.converters.Converter接口,别引用错包了!

public class LocalDateTimeConverter implements Converter<LocalDateTime> {

	@Override
	public Class<LocalDateTime> supportJavaTypeKey() {
		return LocalDateTime.class;
	}

	@Override
	public CellDataTypeEnum supportExcelTypeKey() {
		return CellDataTypeEnum.STRING;
	}

	@Override
	public LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
	                                       GlobalConfiguration globalConfiguration) {
		return LocalDateTime.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
	}

	@Override
	public CellData<String> convertToExcelData(LocalDateTime value, ExcelContentProperty contentProperty,
	                                           GlobalConfiguration globalConfiguration) {
		return new CellData<>(value.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
	}

}

2. 在实体类时间属性上进行引用即可

@ExcelProperty(value = "创建时间", index = 0,converter = LocalDateTimeConverter.class)
    private LocalDateTime date;

附上常用的注解:
注解名称    作用范围    属性    默认值    描述
@ColumnWidth    类或属性    value(int)    -1    设置表格的列宽
@ContentRowHeight    类    value(int)    -1    设置表格的高度(不含表头)
@HeadRowHeight    类    value(int)    -1    设置表格表头的高度
@HeadFontStyle    类或属性    fontName(String)    宋体    设置表格表头的字体
fontHeightInPoints(short)    14    设置表格表头字体的大小
@ExcelIgnore    属性    无        转化表格时忽略该字段
@ExcelIgnoreUnannotated    类    无        转化表格时忽略所有未注释的字段
@ExcelProperty    属性    value(String[])    {""}    说明属性对应表头的名称
index(int)    -1    说明属性在表格的位置
converter(Class<? extends Converter>)    AutoConverter.class    自定义转换类
@DateTimeFormat    属性    value(String)    ""    设置转化格式
use1904windowing(boolean)    false    是否使用1904年日期系统
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java easyexcel 导出示例代码如下: ``` import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.metadata.Sheet; import com.alibaba.excel.metadata.Table; import com.alibaba.excel.support.ExcelTypeEnum; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; public class EasyExcelExportExample { public static void main(String[] args) throws Exception { // 准备数据 List<List<String>> data = new ArrayList<>(); for (int i = 0; i < 10; i++) { List<String> item = new ArrayList<>(); item.add("字符串" + i); item.add("数字" + i); data.add(item); } // 写入数据 FileOutputStream out = new FileOutputStream("easyexcel-export.xlsx"); ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX); Sheet sheet1 = new Sheet(1, 0); sheet1.setSheetName("sheet1"); Table table1 = new Table(1); table1.setHead(new String[]{"字符串列", "数字列"}); writer.write0(data, sheet1, table1); writer.finish(); out.close(); } } ``` 这是一个简单的导出示例,其中写入了10行2列的数据,分别是 "字符串列" 和 "数字列"。示例代码会生成一个名为 "easyexcel-export.xlsx" 的 XLSX 格式的 Excel 文件。 ### 回答2: Java EasyExcel是一种用于Excel导入和导出的开源组件。它提供了简单易用的API,可以方便地创建、读取和写入Excel文件。 以下是一个使用Java EasyExcel进行导出示例: 首先,需要在项目中引入Java EasyExcel的依赖。可以在项目的pom.xml文件中添加以下依赖配置: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.2</version> </dependency> ``` 接下来,创建一个POJO类来表示Excel中的每一行数据。假设我们要导出一个包含学生信息的Excel文件,可以创建一个Student类,包含姓名、年龄和性别等属性。 然后,在导出时,可以通过EasyExcel的API来创建一个ExcelWriter对象,并指定导出的文件名和sheet名称。 ``` ExcelWriter excelWriter = EasyExcel.write("output.xlsx").build(); ``` 接下来,可以通过ExcelWriter对象的sheet()方法创建一个Sheet对象,并指定该sheet的名称和对应的实体类。 ``` Sheet sheet = new Sheet(1, 0, Student.class); sheet.setSheetName("学生信息"); excelWriter.write(dataList, sheet); ``` 为了将数据写入Excel文件,需要将数据封装到List中,然后通过ExcelWriter对象的write()方法进行写入。 最后,调用ExcelWriter对象的finish()方法将数据写入到Excel文件中,并关闭ExcelWriter对象。 ``` excelWriter.finish(); ``` 以上就是一个使用Java EasyExcel进行导出示例。通过简单的几步操作,就可以方便地将数据导出到Excel文件中。Java EasyExcel的易用性使得Excel导入和导出变得更加简单。 ### 回答3: Java easyexcel是一种用于导出Excel文件的简化工具,它可以帮助我们在Java程序中快速实现Excel文件的导出功能。 使用Java easyexcel导出示例的基本步骤如下: 1. 首先,我们需要在项目的依赖中添加Java easyexcel的相关库。可以通过Maven或者Gradle等工具来管理依赖。 2. 在Java程序中创建一个实体类,用来存储要导出到Excel中的数据。这个实体类需要使用注解来设置Excel的表头、列宽等属性。 3. 在Java程序中创建一个导出的方法,该方法使用Java easyexcel提供的API来生成Excel文件。我们可以在该方法中设置Excel的标题、表头、数据源等。 4. 调用导出方法,将Excel文件保存到指定的路径或者输出流中,即可完成Excel文件的导出过程。 下面是一个简单的Java easyexcel导出示例: ```java // 引入Java easyexcel的相关包 import com.alibaba.excel.EasyExcel; // 定义要导出到Excel中的数据实体类 public class Student { @ExcelProperty("姓名") private String name; @ExcelProperty("年龄") private int age; // 省略 getter 和 setter 方法 } // 导出方法 public void exportExcel(List<Student> data, String filePath) { // 设置Excel的标题和表头 List<List<String>> head = new ArrayList<List<String>>(); List<String> title = new ArrayList<String>(); title.add("姓名"); title.add("年龄"); head.add(title); // 将数据导出到Excel文件中 EasyExcel.write(filePath) // 设置导出文件路径 .head(head) // 设置表头 .sheet("Sheet1") // 设置Sheet名称 .doWrite(data); // 导出数据 System.out.println("Excel导出成功!"); } // 测试导出方法 public static void main(String[] args) { // 创建要导出的数据列表 List<Student> data = new ArrayList<Student>(); data.add(new Student("张三", 20)); data.add(new Student("李四", 22)); data.add(new Student("王五", 18)); // 调用导出方法 exportExcel(data, "D:/student.xlsx"); } ``` 通过上述示例,我们可以看到,使用Java easyexcel导出Excel文件非常简单且高效。只需要少量的代码,就可以实现复杂的Excel导出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值