Я экспортирую данные своей базы данных в лист Excel с помощью весенней загрузки.Я могу создать и загрузить лист Excel в своем браузере, но я не могу отправить этот файл Excel в моей организации Response. Когда я отправляю свой URL для загрузки Excel через почтальона, я получаю несколько необработанных ответов, как я могу преобразовать его такчто он отображает содержимое файла клиенту.Вот мой кодМожете ли вы предложить мне, где я делаю неправильно.
вот мой класс обслуживания, который генерирует Excel и сохраняет его в байтовом массиве.
public byte[] exportToExcelFile() throws IOException {
List<Employee> list = dao.getEmployee();
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Employee");
XSSFRow row = sheet.createRow(1);
// create style for header cells
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontName("Arial");
style.setFillForegroundColor(HSSFColor.BLUE.index);
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setColor(HSSFColor.WHITE.index);
style.setFont(font);
// create header row
XSSFRow header = sheet.createRow(0);
header.createCell(0).setCellValue("sl nO");
header.getCell(0).setCellStyle(style);
header.createCell(1).setCellValue("Name");
header.getCell(1).setCellStyle(style);
header.createCell(2).setCellValue("Email");
header.getCell(2).setCellStyle(style);
header.createCell(3).setCellValue("Salary");
header.getCell(3).setCellStyle(style);
int rowCount = 1;
for (Employee emp : list) {
XSSFRow aRow = sheet.createRow(rowCount++);
aRow.createCell(0).setCellValue(emp.getId());
aRow.createCell(1).setCellValue(emp.getName());
aRow.createCell(2).setCellValue(emp.getEmail());
aRow.createCell(3).setCellValue(emp.getSalary());
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
} finally {
bos.close();
}
byte[] bytes = bos.toByteArray();
// FileOutputStream out = new FileOutputStream(new File("employee.xlsx"));
//workbook.write(out);
//out.close();
System.out.println("exceldatabase.xlsx written successfully");
return bytes;
}
вот мой контроллер покоя для загрузки Excel.
@RestController
public class MyController {
@Autowired
EmployeeService service;
@GetMapping(value = "/exportExcel")
public ResponseEntity exportEmployeeExcel(HttpServletResponse response) throws IOException {
byte[] excelContent = service.exportToExcelFile();
if (excelContent.length != 0) {
response.setContentType("application/ms-excel");
response.setHeader("Content-disposition", "attachment; filename=myfile.xls");
return new ResponseEntity(excelContent, HttpStatus.OK);
} else {
return new ResponseEntity("download fail", HttpStatus.NO_CONTENT);
}
}
}