Apache POI 导出excel 返回给前端怎么写
时间: 2023-04-09 12:04:35 浏览: 83
你可以使用以下代码将 Apache POI 导出的 Excel 文件返回给前端:
```java
// 设置响应头信息
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=example.xlsx");
// 获取输出流
OutputStream outputStream = response.getOutputStream();
// 将 Excel 文件写入输出流
workbook.write(outputStream);
// 关闭输出流
outputStream.flush();
outputStream.close();
```
其中,`workbook` 是使用 Apache POI 创建的 Excel 文件对象。
相关问题
springboot 导出excel返回给前端下载
在Spring Boot中,可以使用Apache POI库来导出Excel文件并将其返回给前端进行下载。
首先,我们需要在pom.xml文件中添加Apache POI的依赖项:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
接下来,创建一个Excel导出的处理器方法。可以在Controller中创建一个方法,该方法使用`@RequestMapping`或`@GetMapping`注解来指定URL路径和HTTP请求方法。在该方法中,可以使用Apache POI来创建和填充Excel工作簿。例如,以下代码演示了如何在Excel中创建并填充一个简单的表格:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@RequestMapping("/export")
public ResponseEntity<Resource> exportExcel() throws IOException {
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 填充数据
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("年龄");
Row dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue("张三");
dataRow.createCell(1).setCellValue(25);
// 将工作簿转换为字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
byte[] excelBytes = outputStream.toByteArray();
// 创建HTTP响应体,并设置文件下载的相关头信息
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", "data.xlsx");
// 返回带有Excel文件的响应实体
return new ResponseEntity<>(new ByteArrayResource(excelBytes), headers, HttpStatus.OK);
}
```
在上面的代码中,我们创建了一个简单的Excel表格,并将其转换为字节数组形式。然后,我们创建了一个包含Excel文件的响应实体,并设置了HTTP响应头以指定文件下载的相关信息,例如文件名和Content-Type。最后,我们将响应实体返回给前端进行下载。
以上是一个简单的示例,你可以根据实际需求来创建更复杂的Excel导出。
帮忙生成java poi 前端导出excel代码
当然,我可以帮你生成一段Java代码来使用POI导出Excel文件。以下是一个示例代码:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelExporter {
public static void exportDataToExcel() {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建行对象
Row row = sheet.createRow(0);
// 创建单元格样式
CellStyle headerCellStyle = workbook.createCellStyle();
headerCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headerCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 创建标题行
Cell cell = row.createCell(0);
cell.setCellValue("姓名");
cell.setCellStyle(headerCellStyle);
cell = row.createCell(1);
cell.setCellValue("年龄");
cell.setCellStyle(headerCellStyle);
// 写入数据行
row = sheet.createRow(1);
row.createCell(0).setCellValue("张三");
row.createCell(1).setCellValue(25);
row = sheet.createRow(2);
row.createCell(0).setCellValue("李四");
row.createCell(1).setCellValue(30);
// 调整列宽
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
// 保存Excel文件
try {
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
System.out.println("Excel导出成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
exportDataToExcel();
}
}
```
以上代码演示了如何使用POI库创建一个Excel文件,并将数据写入到工作表中。你可以根据自己的需求进行修改和扩展。记得在运行代码之前,确保已经将POI库添加到你的项目中。运行代码后,将会在项目目录下生成一个名为"output.xlsx"的Excel文件,其中包含导出的数据。
希望这段代码对你有所帮助!如果有任何问题,请随时提问。