EasyPoi导出Excel,完整代码+案例(100%能导出——导不出来砍我)

java解决,EasyPoi导出Excel,废话不多说,直接上代码

第一步:导入依赖 

        <!--EasyPoi导入导出 -->
		<dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-base</artifactId>
			<version>3.2.0</version>
		</dependency>
		<dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-web</artifactId>
			<version>3.2.0</version>
		</dependency>
		<dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-annotation</artifactId>
			<version>3.2.0</version>
		</dependency>

第二部:写好 导出的实体类(和Excel对应的)

package com.space.web.dto.finance.resp;

import java.math.BigDecimal;
import java.util.List;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import lombok.Data;

/**
 * @Description: 功能描述:财务模块-导出Excel
 * @ClassName: AcceptedProjectsDto.java
 * @author: 贺志辉
 * @date: 2019年6月14日
 */
@Data
@ExcelTarget("teacherEntity")
public class ExportDto {

	/**
	 * 项目id
	 */
	private Long projectId;

	/**
	 * 项目名称
	 */
	@Excel(name = "项目名称", orderNum = "0",needMerge=true)
	private String projectName;

	/**
	 * 项目金额
	 */
	@Excel(name = "项目金额", orderNum = "1",needMerge=true)
	private BigDecimal budget;

	/**
	 * 毛利
	 */
	@Excel(name = "毛利率(%)", orderNum = "2",needMerge=true)
	private BigDecimal grossProfit;

	/**
	 * 发放状态
	 */
	private int status;
	@Excel(name = "发放状态", orderNum = "3",needMerge=true)
	private String statusGrant;

	/**
	 * 奖金
	 */
	@Excel(name = "奖金(元)", orderNum = "4",needMerge=true)
	private BigDecimal bonus;

	/**
	 * 用户id
	 */

	private long userId;

	public void setUserId(Long userId) {
		this.userId = userId;
//		this.userName = UserUtil.lastName(userId);
	}

	/**
	 * 姓名
	 */
	@ExcelCollection(name="",orderNum = "5")
	private List<ExportUserDto> listExportUser;
	
	/**
	 * 税额
	 */
    private BigDecimal paymentTax;



}

第三部:写好,需要导出的 值(就是从数据库查询,需要导入的值)--这是重点

//要导出的值
List<ExportDto> exportExcel = bonusDistributionService.exportExcel(status);

第四部:写导出控制类
 

	/**
	 * @Description: 财务模块-导出要发Excel的表格
	 * @author: 贺志辉
	 * @return: void
	 */
	@GetMapping("exportExcel")
	public void searchMemberList(HttpServletResponse response, Integer status) {

		Workbook workbook = null;
		// 传真实地址
		try {
			// String time =
			// DateUtil.getTime(startTime)+"至"+DateUtil.getTime(endTime)+".xls";
			String fileName = "奖金明细列表" + LocalDate.now();
			//要导出的值
			List<ExportDto> exportExcel = bonusDistributionService.exportExcel(status);
			// list = flowService.excelExport(projectStateReqDto);
			workbook = ExcelExportUtil.exportExcel(new ExportParams(), ExportDto.class, exportExcel);
			response.reset();//清除首部的空白行。
			response.setContentType("application/xls;charset=UTF-8");
			response.setHeader("Content-Disposition",
					"attachment;filename=\"" + new String(fileName.getBytes("gbk"), "iso8859-1") + ".xls" + "\"");
			OutputStream out = response.getOutputStream();
			workbook.write(out);
			out.flush();
			out.close();
		} catch (IOException ex) {
			throw new BizException("导出失败");
		}
	}

第五步:测试导出(用浏览器测试的,浏览器直接下载一个,Exel文件)如下所示

OK-->导入完成啦!
注意:其实导出不难,重点在第三部,写你需要导出的数据,其实也是根据你们的业务逻辑而定的,业务简单,就简单了

有问题,欢迎联系交流!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值