//印刷ボタン
@RequestMapping(value = "", params = "print", method = RequestMethod.POST)
public String print(HttpServletResponse response,WorkmonthForm workmonthForm, Model model,ModelMap map) throws IOException {
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String sheetNm = "協力会社社員勤休表";
String fileNm = "2019-04勤务表";
String fileName = URLEncoder.encode("2019-04勤务表", "UTF-8");
Workbook workbook = null;
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
String filePath = getClass().getResource("/abc.xls").getPath();
filePath = filePath.substring(1);
FileInputStream fileInputStream = new FileInputStream(new File(filePath));
workbook = WorkbookFactory.create(fileInputStream);
Sheet sheet = workbook.getSheet(sheetNm);
List<WorkmonthDto> workmonths = (List<WorkmonthDto>) map.get("workmonths");
if (workmonths !=null && workmonths.size()>0) {
for (int i = 0; i < workmonths.size(); i++) {
WorkmonthDto workmonth = workmonths.get(i);
Cell cell_start = sheet.getRow(4+i).getCell(2);
Cell cell_end = sheet.getRow(4+i).getCell(3);
String start = workmonth.getStart_h()+":"+workmonth.getStart_m();
String end = workmonth.getEnd_h()+":"+workmonth.getEnd_m();
if (!":".equals(start)) {
double time = DateUtil.convertTime(start);
cell_start.setCellValue(time);
}
if (!":".equals(end)) {
double time = DateUtil.convertTime(end);
cell_end.setCellValue(time);
}
Cell cell_biko1 = sheet.getRow(4+i).getCell(7);
cell_biko1.setCellValue(workmonth.getBiko1());
Cell cell_biko2 = sheet.getRow(4+i).getCell(8);
cell_biko1.setCellValue(workmonth.getBiko2());
}
}
workbook.write(os);
byte[] content = os.toByteArray();
InputStream inputStream = new ByteArrayInputStream(content);
response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileNm + ".xls").getBytes(), "UTF-8"));
//response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileNm, "UTF-8"));
ServletOutputStream out = response.getOutputStream();
bufferedInputStream = new BufferedInputStream(inputStream);
bufferedOutputStream = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bufferedInputStream.read(buff, 0, buff.length))) {
bufferedOutputStream.write(buff, 0, bytesRead);
}
} catch (FileNotFoundException e) {
logger.info(e.getMessage());
} catch (EncryptedDocumentException e) {
logger.info(e.getMessage());
} catch (InvalidFormatException e) {
logger.info(e.getMessage());
} catch (IOException e) {
logger.info(e.getMessage());
} finally {
if (bufferedInputStream != null)
bufferedInputStream.close();
if (bufferedOutputStream != null)
bufferedOutputStream.close();
}
return null;
}