So, I have a Spring controller, and I would like to create an Excel file and return it so that it is loaded by the browser.
I am using JEXcelApi.
This is my controller code
@RequestMapping(value="/excel/cols/{colString}/rows/{rowString}/", method = RequestMethod.GET) @ResponseBody public ResponseEntity<String> exportExcel(HttpServletResponse response, @PathVariable List<String> colString, @PathVariable List<String> rowString) throws JSONException, IOException, WriteException { WritableWorkbook workbook = Workbook.createWorkbook(new File("exported.xls")); WritableSheet sheet = workbook.createSheet("Exported",0); String[] cols = colString.get(0).split(","); String[] rows = rowString.get(0).split(","); for(int i = 0; i < cols.length;i++){ Label label = new Label(i,0, cols[i]); sheet.addCell(label); } int excelCol = 0; int excelRow = 1; for(int i = 0; i < rows.length;i++){ Label label = new Label(excelCol,excelRow, rows[i]); sheet.addCell(label); excelCol++; if((i+1) % cols.length == 0){ excelCol = 0; excelRow++; } } workbook.write(); workbook.close(); return null; }
How can I do it? I suspect there is some content header that I can set. I know that one method is to use the Spring Abstract Excel view class, but is there a simpler method?
source share