//导出 List<String> headers = Arrays.asList("#", "#", "#", "#"); response.setHeader("content-type", "application/octet-stream"); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode("SKU" + DateUtil.getCurrentDateByFormat("yyyyMMddHHmmss") + ".xlsx", "UTF-8")); //创建工作薄 SXSSFWorkbook wb = new SXSSFWorkbook(); //样式 CellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); // 创建一个居中格式 //字体样式 Font fontStyle = wb.createFont(); fontStyle.setFontName("微软雅黑"); fontStyle.setFontHeightInPoints((short) 12); style.setFont(fontStyle); //新建sheet SXSSFSheet sheet1 = wb.createSheet("Sheet1"); //设置每列的列宽 sheet1.setColumnWidth(0, 5000); sheet1.setColumnWidth(1, 5000); sheet1.setColumnWidth(2, 10000); sheet1.setColumnWidth(3, 5000); sheet1.setColumnWidth(4, 10000); sheet1.setColumnWidth(5, 10000); //写标题 SXSSFRow rowFirst1 = sheet1.createRow(0); for (int i = 0, size = headers.size(); i < size; i++) { SXSSFCell cell = rowFirst1.createCell(i); //获取第一行的每个单元格 cell.setCellStyle(style); //加样式 cell.setCellValue(headers.get(i)); //往单元格里写数据 } for (int i = 0, size = xxx.size(); i < size; i++) { SXSSFRow rows = sheet1.createRow(i+1); for (int j = 0; j <=5;j++) { SXSSFCell cell = rows.createCell(j); //获取第一行的每个单元格 cell.setCellStyle(style); //加样式 switch(j){ case 0: cell.setCellValue(i+1); break; case 1: cell.setCellValue(xxx.get(i).getxxx()); break; case 2: cell.setCellValue(xxx.get(i).getxxx()); break; case 3: cell.setCellValue(xxx.get(i).getxxx()); break; case 4: cell.setCellValue(xxx.get(i).getxxx()); break; case 5: cell.setCellValue(xxx.get(i).getxxx()); break; } } } @Cleanup ServletOutputStream outputStream = null; try { outputStream = response.getOutputStream(); wb.write(outputStream); } catch (IOException e) { e.printStackTrace(); throw e; } finally { wb.close(); if (outputStream != null) { outputStream.close(); } }
//读取
public void readExcel(MultipartFile file) { InputStream inputStream = null; try { inputStream = file.getInputStream(); } catch (IOException e) { throw new BusinessMallException("文件读取失败"); } ExcelReader reader = ExcelUtil.getReader(inputStream, 0); List<List<Object>> mapList = reader.read(); for (int rownum = 2; rownum < mapList.size(); rownum++) { for (int i = 0, size = mapList.get(rownum).size(); i < size; i++) { switch (i) { case 0: xxx.setxxx(mapList.get(rownum).get(0)); break; case 1: xxx.setxxx(mapList.get(rownum).get(1)); break; case 2: xxx.setxxx(mapList.get(rownum).get(3)); break; } } } }