Java XSSFWorkbook给前端返回数据

在Java中,使用XSSFWorkbook类可以方便地生成Excel文件,并将其返回给前端页面展示。XSSFWorkbook是Apache POI库中用于操作Excel文件的一部分,可以创建、读取和修改Excel文件。

XSSFWorkbook简介

XSSFWorkbook是POI库中用于处理Excel文件的主要类之一,它代表一个Excel文件,并且可以包含多个工作表(Sheet)。通过XSSFWorkbook类,我们可以创建新的Excel文件,向文件中添加数据,设置样式,生成图表等。

生成Excel文件并返回给前端

下面是一个简单的例子,演示如何使用XSSFWorkbook类生成一个包含数据的Excel文件,并将其返回给前端页面:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;

public class ExcelGenerator {
    public XSSFWorkbook generateExcel() {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("Sheet1");

        // 创建表头
        XSSFRow headerRow = sheet.createRow(0);
        XSSFCell cell = headerRow.createCell(0);
        cell.setCellValue("Name");
        cell = headerRow.createCell(1);
        cell.setCellValue("Age");

        // 添加数据
        XSSFRow dataRow = sheet.createRow(1);
        cell = dataRow.createCell(0);
        cell.setCellValue("Tom");
        cell = dataRow.createCell(1);
        cell.setCellValue(30);

        return workbook;
    }
}

上面的代码中,我们创建了一个ExcelGenerator类,其中包含一个generateExcel()方法,该方法生成一个包含姓名和年龄数据的Excel文件。我们可以在Spring MVC或其他框架中调用该方法,将生成的XSSFWorkbook对象写入HttpServletResponse返回给前端页面。

示例代码

下面是一个简单的Spring MVC控制器,调用ExcelGenerator类生成Excel文件并返回给前端:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;

@RestController
public class ExcelController {
    
    @GetMapping("/downloadExcel")
    public ResponseEntity<byte[]> downloadExcel() {
        ExcelGenerator excelGenerator = new ExcelGenerator();
        XSSFWorkbook workbook = excelGenerator.generateExcel();
        
        HttpHeaders headers = new HttpHeaders();
        headers.set("Content-Disposition", "attachment; filename=example.xlsx");
        
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        workbook.write(outputStream);
        
        return ResponseEntity.ok().headers(headers).body(outputStream.toByteArray());
    }
}

在上面的代码中,我们定义了一个ExcelController类,其中包含了一个/downloadExcel接口,该接口调用ExcelGenerator类生成Excel文件并返回给前端。我们将生成的Excel文件写入一个ByteArrayOutputStream中,然后通过ResponseEntity返回给前端页面。

总结

通过使用XSSFWorkbook类,我们可以方便地生成Excel文件并将其返回给前端页面。在实际项目中,我们可以根据需求设置Excel文件的样式、格式,生成包含复杂数据的Excel报表,并通过HttpServletResponse返回给前端页面展示。

通过本文的介绍,希望读者能够了解如何使用XSSFWorkbook类生成Excel文件并返回给前端页面,从而为项目开发提供更多可能性。如果有疑问或需要进一步了解,请查阅Apache POI官方文档或咨询相关专业人士。