1.所用框架
- 我这里后端用的框架是 SpringBoot
- 前端框架是 Vue
2.后端接口实现
1.导入 POI 依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
2.创建导出 Excel 接口
- 可以导出全部 Excel 数据,也可以实现分页导出
- 这个分页导出就是将你查询的数据添加分页条件即可,这里不过多叙述。
@GetMapping("/export")
public ResponseEntity<byte[]> exportData() {
List<Employee> employeeList = employeeService.getEmployees();
return POIUtils.employee2Excel(employeeList);
}
3.创建导出 Excel 工具类
- 创建上段中出现的 POIUtils 工具类,代码如下:
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.javaboy.vhr.bean.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
public class POIUtils {
public static ResponseEntity<byte[]> employee2Excel(List<Employee> list) {
HSSFWorkbook workbook = new HSSFWorkbook();
workbook.createInformationProperties();
DocumentSummaryInformation docInfo = workbook.getDocumentSummaryInformation();
docInfo.setCategory("员工信息");
docInfo.setManager("javaboy");
docInfo.setCompany("www.javaboy.org");
SummaryInformation summInfo = workbook.getSummaryInformation();
summInfo.setTitle("员工信息表");
summInfo.setAuthor("javaboy");
summInfo.setComments("本文档由 javaboy 提供");
HSSFCellStyle headerStyle = workbook.createCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
HSSFCellStyle dateCellStyle = workbook.createCellStyle();
dateCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
HSSFSheet sheet = workbook.createSheet("员工信息表");
sheet.setColumnWidth(0, 5 * 256);
sheet.setColumnWidth(1, 12 * 256);