导出excel表的controller
时间: 2023-09-17 16:06:28 浏览: 59
以下是一个导出Excel表格的Controller示例,使用了Apache POI库来处理Excel文件:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Date;
@Controller
public class ExcelController {
@GetMapping("/export")
public ResponseEntity<byte[]> exportExcel(HttpServletRequest request) throws IOException {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建表格
Sheet sheet = workbook.createSheet("Sheet1");
// 创建行
Row row = sheet.createRow(0);
// 创建单元格并设置值
Cell cell = row.createCell(0);
cell.setCellValue("Hello, World!");
// 设置表格样式
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.GREEN.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell.setCellStyle(style);
// 将工作簿写入输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
workbook.close();
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", "example.xlsx");
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
// 构建响应实体并返回
ResponseEntity<byte[]> response = new ResponseEntity<>(baos.toByteArray(), headers, HttpStatus.OK);
return response;
}
}
```
该Controller的`exportExcel`方法将创建一个Excel文件,并将其作为响应返回给客户端。Excel文件中包含了一个包含单元格值的工作表。在实际应用中,您需要根据需求修改代码并将其集成到您的应用程序中。