Usages of

org.apache.poi.xssf.streaming.SXSSFCell.setCellType(?)
private SXSSFCell cell = null; // code omitted ... /** * ������������ * @param sheetName * @param headers */ private void createSheet(String sheetName,String headers[][],SXSSFWorkbook wb) { sheet = (SXSSFSheet) wb.createSheet(sheetName); row = (SXSSFRow) sheet.createRow(currentRow); for (int i = 0; i < headers.length; i++) { //7680=30*256 sheet.setColumnWidth(i, 7680); cell = (SXSSFCell) row.createCell(i); cell.setCellType(XSSFCell.CELL_TYPE_STRING); cell.setCellValue(headers[i][0]); cell.setCellStyle(head_Style); } currentRow++; }
private static int createCellForUpdateInExcelCells(SXSSFSheet sheet, String values, int cellIndex, SXSSFRow row, boolean wrapText, boolean isNumeric) { int cellIndexx = cellIndex++; SXSSFCell cell = ExcelOperationUtil.createCell(row, cellIndexx); if (isNumeric && !StringUtils.isEmpty(values)) { Double value = Double.valueOf(values.replaceAll("[^0-9.]|\\s+", "")); cell.setCellValue(value); cell.setCellType(Cell.CELL_TYPE_NUMERIC); } else { cell.setCellValue(handleEmpty(values)); } if (wrapText) { cs.setWrapText(true); cell.setCellStyle(cs); } return cellIndex; }
// ������������ public void exportData() throws Exception{ SXSSFWorkbook workbook = new SXSSFWorkbook();//��������������������� Excel 2007 OOXML (.xlsx)������ SXSSFSheet sheet = workbook.createSheet(title); // ������������ for(int i = 1;i<rowName.length;i++){ //������������������������������������ int length = rowName[i].toString().length(); sheet.setColumnWidth(i, 2*(length+1)*256); } //sheet.setDefaultRowHeightInPoints(18.5f); // sheet������������ CellStyle columnTopStyle = this.getColumnTopStyle(workbook,14); // ��������� CellStyle columnStyle = this.getColumnStyle(workbook,12); // ������������ CellStyle style = this.getStyle(workbook,11); // ��������������� // ��������������������� sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, (rowName.length-1)));// ��������������������������� SXSSFRow rowm = sheet.createRow(0); // ��� rowm.setHeightInPoints(31f); SXSSFCell cellTiltle = rowm.createCell(0); // ��������� cellTiltle.setCellStyle(columnTopStyle); cellTiltle.setCellValue(title); // ��������������������������� int columnNum = rowName.length; // ������������������ SXSSFRow rowRowName = sheet.createRow(1); // ��������������������� rowRowName.setHeightInPoints(21f); CellStyle cells = workbook.createCellStyle(); cells.setBottomBorderColor(HSSFColor.BLACK.index); rowRowName.setRowStyle(cells); for (int i = 0; i < columnNum; i++) { SXSSFCell cellRowName = rowRowName.createCell(i); cellRowName.setCellType(SXSSFCell.CELL_TYPE_STRING); // ��������������� XSSFRichTextString text = new XSSFRichTextString(rowName[i]); // ��������������� cellRowName.setCellValue(text); // ��������������� cellRowName.setCellStyle(columnStyle); // ������ } // ������������������������������������������������������������������������������������������������������������������������������������������ for (int i = 0; i < dataList.size(); i++) { Object[] obj = dataList.get(i);//������������������ SXSSFRow row = sheet.createRow(i+2);//��������������������� row.setHeightInPoints(17.25f); for (int j = 0; j < obj.length; j++) { SXSSFCell cell = null; //������������������������������ if(j==0){ // ������������������������ cell = row.createCell(j,SXSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(i+1); }else{ cell = row.createCell(j,SXSSFCell.CELL_TYPE_STRING); if(!"".equals(obj[j]) && obj[j] != null){ cell.setCellValue(obj[j].toString()); //��������������������� }else{ cell.setCellValue(" "); } } cell.setCellStyle(style); // ������ } } // ������������������������������������������������������������������������������ ������������linux������������������������������������������������������������ // for (int i = 0; i < columnNum; i++) { // sheet.autoSizeColumn(i); // sheet.setColumnWidth(i, sheet.getColumnWidth(i)+888);//��������������� // } if(workbook !=null){ // ��������������������� // FileOutputStream fileOutputStream = new FileOutputStream("D:/user.xls"); // workbook.write(fileOutputStream);//������������������ // fileOutputStream.close();//��������������� // ��������������������������� OutputStream out = response.getOutputStream(); try { // excel ������������ String fileName = title + DateFormatUtils.format(new Date(), "yyyyMMddHHmmss") + ".xlsx"; String fileName11 = ""; String userAgent = request.getHeader("USER-AGENT"); if(StringUtils.contains(userAgent, "Firefox") || StringUtils.contains(userAgent, "firefox")){//��������������� fileName11 = new String(fileName.getBytes(), "ISO8859-1"); }else{ fileName11 = URLEncoder.encode(fileName,"UTF-8");//��������������� } String headStr = "attachment; filename=\"" + fileName11 + "\""; response.setContentType("APPLICATION/OCTET-STREAM"); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition", headStr); workbook.write(out); out.flush(); workbook.close(); workbook.dispose(); } catch (Exception e) { throw e; } finally { if (null != out) { out.close(); } } } }
/** * metodo pubblico da chiamare per la generazione di un file excel * richiede che siano stati impostati i parametri obbligatori: headers, types, styles e data * i parametri headerHeight e rowHiweght sono facoltativi */ public void generate() { // check sui dati necessari alla generazione del file excel if (headers==null) throw new SystemException("Missing headers field"); if (types==null) throw new SystemException("Missing types field"); if (styles==null) throw new SystemException("Missing styles field"); if (data==null) throw new SystemException("Missing data field"); if (headers.size()!=types.size()) throw new SystemException("Size types field not equal size headers fields"); if (headers.size()!=styles.size()) throw new SystemException("Size styles field not equal size headers fields"); // Creo il workbook solo se e' il primo foglio che genero, altrimenti riuso quello gia' creato if(workBook == null){ workBook = new SXSSFWorkbook(500); } // creazione dello sheet SXSSFSheet sheet = null; sheet = (SXSSFSheet)workBook.createSheet(sheetName == null ? "Sheet1" : sheetName); // chiamata a metodo per l'impostazione degli stili aggiuntivi in base al contenuto delle celle createStyles(); // chiamata a metodo per l'impostazione degli stili aggiuntivi in base al contenuto delle celle createStylesForTypes(); // creazione della riga di interstazione SXSSFRow headerRow = (SXSSFRow)sheet.createRow(0); int contHeaders=0; // impostazione delle colonne di intestazione in base ai parametri passati for (String header : headers) { SXSSFCell headerCell = (SXSSFCell)headerRow.createCell(contHeaders++); headerCell.setCellStyle(cellStyleHeader); headerCell.setCellValue(header); } // eventuale impostazione altezza intestazione if (headerHeight!=-1) { headerRow.setHeight(headerHeight); } int rowNum=1; // impostazione matrice dei dati for (ArrayList<Object> rowData : data) { // creazione di una riga di dati SXSSFRow row= (SXSSFRow)sheet.createRow(rowNum++); int colNum = 0; for (Object cellData : rowData) { // creazione di una cella di dati SXSSFCell cell=(SXSSFCell)row.createCell(colNum); // // impostazione dello stile della cella // switch (styles.get(colNum)) { // case EXCEL_STYLE_YELLOW: { // cell.setCellStyle(cellStyleYellow); // break; // } // case EXCEL_STYLE_PINK: { // cell.setCellStyle(cellStylePink); // break; // } // } // impostazione del contenuto della cella in base al tipo di cella (numerica o alfanumerica) switch (types.get(colNum)) { case EXCEL_TYPE_TEXT: { if (cellData!=null && cellData.toString().length() > 0){ cell.setCellStyle(cellStyleText); cell.setCellType(SXSSFCell.CELL_TYPE_STRING); cell.setCellValue(cellData.toString()); } break; } case EXCEL_TYPE_NUMBER: { if (cellData!=null && cellData.toString().length() > 0){ cell.setCellStyle(cellStyleNumber); cell.setCellType(SXSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(Double.parseDouble(cellData.toString())); } break; } case EXCEL_TYPE_DATE:{ if (cellData!=null && cellData.toString().length() > 0){ cell.setCellStyle(cellStyleDate); cell.setCellValue((Date)cellData); } break; } case EXCEL_TYPE_BOOLEAN:{ if(cellData != null && cellData.toString().length() > 0){ cell.setCellStyle(cellStyleBoolean); cell.setCellType(SXSSFCell.CELL_TYPE_STRING); if((Boolean)cellData){ cell.setCellValue("S��"); } else{ cell.setCellValue("No"); } } break; } case EXCEL_TYPE_PRICE:{ if(cellData != null && cellData.toString().length() > 0){ cell.setCellStyle(cellStylePrice); cell.setCellType(SXSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(((BigDecimal)cellData).doubleValue()); } break; } default: { throw new SystemException("Cell type " + types.get(colNum) + " not recognized"); } } //Aggiunta di eventuali colori cell.setCellStyle(addColorToStyle(((XSSFCellStyle)cell.getCellStyle()),styles.get(colNum))); colNum++; } // eventuale impostazione dell'altezza della riga di dati if (rowHeight!=-1) { row.setHeight(rowHeight); } } // impostazione della propriet�� autoSize su tutte le colonne dello sheet for (int indice=0;indice<contHeaders;indice++) { sheet.autoSizeColumn(indice); } }
static void createCell(SXSSFRow row, int index, Object value, CellStyle style) { if (value != null) { SXSSFCell cell = row.createCell(index); if (style != null) { cell.setCellStyle(style); } if (value instanceof String) { cell.setCellValue((String)value); } else if (value instanceof Double) { cell.setCellValue((Double)value); cell.setCellType(Cell.CELL_TYPE_NUMERIC); } else if (value instanceof Integer) { cell.setCellValue(((Integer)value).doubleValue()); cell.setCellType(Cell.CELL_TYPE_NUMERIC); } else if (value instanceof Date) { cell.setCellValue(((Date)value)); } else if (value instanceof Long) { cell.setCellValue(((Long)value)); } else if (value instanceof Boolean) { cell.setCellValue(((Boolean)value)); } } }
private void setCellData(){ SXSSFCell sxssfCell = _xssfCellExportContext.getExcelCell(); DataType dataType = _xssfCellExportContext.getDataType(); String data = _xssfCellExportContext.getData(); Map<String,Object> contentMap = _xssfCellExportContext.contentMap(); String tableColumn =(String) _xssfCellExportContext.getVariable("tableColumn"); if(tableColumn != null){ dataType = DataType.string; data = tableColumn; } try{ switch(dataType){ case formula: sxssfCell.setCellType(Cell.CELL_TYPE_FORMULA); Object fv = _xssfCellExportContext.getFormulaValue(); if(fv != null){ if(fv instanceof Number){ sxssfCell.setCellValue(((Number)fv).doubleValue()); }else{ String fvString = fv.toString(); Double fvDouble = Doubles.tryParse(fvString); if(fvDouble != null){ // if value is numeric, we cached sxssfCell.setCellValue(fvDouble); }else{ // else we miss it.It helps we import. sxssfCell.setCellValue(""); } } } sxssfCell.setCellFormula(SpreadsheetExportHelper.filterFormulaIllegalCharacter(data.substring(1))); Integer afrow = (Integer)contentMap.get("afrow"); Integer aerow = (Integer)contentMap.get("aerow"); Integer afcol = (Integer)contentMap.get("afcol"); Integer aecol = (Integer)contentMap.get("aecol"); if(afrow != null && afcol != null ){ Map<String,String> attributes = new HashMap<>(); attributes.put("ca", "1"); if(aerow != null && aecol != null){ int rowIndex= _xssfCellExportContext.sheetCell().getX(); int columnIndex = _xssfCellExportContext.sheetCell().getY(); attributes.put("aca", "1"); attributes.put("ref", CellReference.convertNumToColString(columnIndex-1)+rowIndex+":"+CellReference.convertNumToColString(columnIndex+aecol-1)+(rowIndex+aerow)); attributes.put("t", "array"); }else{ sxssfCell.setCellFormula(""); } sxssfCell.getFormulaValue().setAttributes(attributes); } break; case bool: sxssfCell.setCellType(Cell.CELL_TYPE_BOOLEAN); sxssfCell.setCellValue(Boolean.valueOf(data.toLowerCase())); break; case string: sxssfCell.setCellType(Cell.CELL_TYPE_STRING); sxssfCell.setCellValue(data); break; case numeric: sxssfCell.setCellType(Cell.CELL_TYPE_NUMERIC); sxssfCell.setCellValue(Double.parseDouble(data)); break; case date: Date javaDate = DateTimeUtil.parseAsYYYYMMdd(data); sxssfCell.setCellValue(javaDate); break; case time: double timeValue = convertTimeAsDouble(data); sxssfCell.setCellValue(timeValue); break; case datetime: Date javaDatetime = DateTimeUtil.parseAsYYYYMMddHHmmss(data); sxssfCell.setCellValue(javaDatetime); break; case error: sxssfCell.setCellType(Cell.CELL_TYPE_ERROR); sxssfCell.setCellValue(data); break; case blank: sxssfCell.setCellType(Cell.CELL_TYPE_BLANK); break; } }catch(Exception ex){ sxssfCell.setCellType(Cell.CELL_TYPE_STRING); sxssfCell.setCellValue(_xssfCellExportContext.sheetCell().getRawData()); } }
@RequestMapping(value = "applySheets", params = "delivery", method = RequestMethod.POST) public String deliveryApplySheet(final ApplySheet applySheet, Model uiModel) { ApplySheet theApplySheet = applySheetRepository.findOne(applySheet.getId()); int rownum = 0; SXSSFWorkbook wb = new SXSSFWorkbook(-1); // turn off auto-flushing and accumulate all rows in memory SXSSFSheet sh = wb.createSheet(); //��������������� SXSSFRow row = sh.createRow(rownum++); SXSSFCell labelCell = row.createCell(0); labelCell.setCellType(Cell.CELL_TYPE_STRING); labelCell.setCellValue("������������������"); SXSSFCell valCell = row.createCell(1); valCell.setCellType(Cell.CELL_TYPE_STRING); valCell.setCellValue(theApplySheet.getSheetNo()); //��������� row = sh.createRow(rownum++); labelCell = row.createCell(0); labelCell.setCellType(Cell.CELL_TYPE_STRING); labelCell.setCellValue("������������"); valCell = row.createCell(1); valCell.setCellType(Cell.CELL_TYPE_STRING); valCell.setCellValue(theApplySheet.getShipCorparation().getCnName()); //������ row = sh.createRow(rownum++); labelCell = row.createCell(0); labelCell.setCellType(Cell.CELL_TYPE_STRING); labelCell.setCellValue("���������"); valCell = row.createCell(1); valCell.setCellType(Cell.CELL_TYPE_STRING); valCell.setCellValue(theApplySheet.getRemarks()); //��������������� row = sh.createRow(rownum++); labelCell = row.createCell(0); labelCell.setCellType(Cell.CELL_TYPE_STRING); labelCell.setCellValue("������������������"); //������������������ row = sh.createRow(rownum++); for (int i = 0; i < 8; i++) { labelCell = row.createCell(i); labelCell.setCellType(Cell.CELL_TYPE_STRING); switch (i) { case 0: labelCell.setCellValue("������"); break; case 1: labelCell.setCellValue("������������"); break; case 2: labelCell.setCellValue("���������������"); break; case 3: labelCell.setCellValue("���������"); break; case 4: labelCell.setCellValue("������������"); break; case 5: labelCell.setCellValue("������������������"); break; case 6: labelCell.setCellValue("������������������"); break; case 7: labelCell.setCellValue("������������"); break; } } List<Requisition> requisitionList = theApplySheet.getRequisitions(); for (int i = 0; i < requisitionList.size(); i++) { Requisition requisition = requisitionList.get(i); row = sh.createRow(rownum++); for (int j = 0; j < 8; j++) { valCell = row.createCell(j); switch (j) { case 0: valCell.setCellType(Cell.CELL_TYPE_NUMERIC); valCell.setCellValue(i + 1); break; case 1: valCell.setCellType(Cell.CELL_TYPE_STRING); valCell.setCellValue(new SimpleDateFormat("yyyy-MM-dd hh24:mm:ss").format(requisition.getCreatedTime())); break; case 2: valCell.setCellValue(requisition.getLadingBillNo()); break; case 3: valCell.setCellValue(requisition.getCreatedBy()); break; case 4: valCell.setCellValue(requisition.getContainerTypeSize()); break; case 5: valCell.setCellValue(requisition.getContainerYard().getCounty()); break; case 6: valCell.setCellValue(requisition.getContainerYard().getName()); break; case 7: valCell.setCellType(Cell.CELL_TYPE_BOOLEAN); break; } } } if (rownum % 100 == 0) { try { sh.flushRows(100); // retain 100 last rows and flush all others } catch (IOException e1) { e1.printStackTrace(); } } FileOutputStream out = null; String newFileName = applysheetFolder + theApplySheet.getShipCorparation().getCnAbbr() + theApplySheet.getSheetNo() + "." + "xlsx"; try { out = new FileOutputStream(newFileName); wb.write(out); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // dispose of temporary files backing this workbook on disk wb.dispose(); String receiptName = theApplySheet.getShipCorparation().getContact(); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = null; try { helper = new MimeMessageHelper(message, true); message.setFrom(new InternetAddress("[email protected]")); } catch (MessagingException e) { e.printStackTrace(); } try { helper.setTo(theApplySheet.getShipCorparation().getContactEmail()); // helper.setTo("[email protected]"); StringBuilder mailBody = new StringBuilder(); mailBody.append("���������") .append(receiptName) .append("������(������):") .append("\n") .append("\t������������������(") .append(theApplySheet.getSheetNo()) .append(")������������������������, ������������") .append("\n") .append("\t���������������������") .append("\t������������������") .append("\n\n") .append("Sent From:") .append("���������������������������������������������"); helper.setSubject("���������������������-" + theApplySheet.getSheetNo()); helper.setText("���������" + receiptName + "������(������):"); FileSystemResource attachmentFile = new FileSystemResource(new File(newFileName)); helper.addAttachment("���������-" + theApplySheet.getSheetNo() + ".xlsx", attachmentFile); } catch (MessagingException e) { e.printStackTrace(); } try { mailSender.send(message); theApplySheet.setSheetStatus(SheetStatusEnum.Sent); theApplySheet.setDeliveriedTime(new Date()); theApplySheet.setDeliveriedBy("admin"); applySheetRepository.save(theApplySheet); } catch (Exception e) { e.printStackTrace(); } return "redirect:/admin/requisitions"; }
public void createDailyReport(ShipmentAgentEnum shipmentAgent) { SXSSFWorkbook wb = new SXSSFWorkbook(-1); SXSSFSheet sh = wb.createSheet(); int rownum = 0; Font font = wb.createFont(); wb.createFont(); font.setFontHeightInPoints((short) 24); font.setFontName("������"); CellStyle labelCellStyle = wb.createCellStyle(); labelCellStyle.setFont(font); //������ SXSSFRow row = sh.createRow(rownum++); row.setHeightInPoints(40); SXSSFCell labelCell = row.createCell(0); labelCell.setCellType(Cell.CELL_TYPE_STRING); labelCell.setCellValue("\"������������\"������������������������"); labelCell.setCellStyle(labelCellStyle); sh.addMergedRegion(CellRangeAddress.valueOf("$A$1:$F$1")); wb.createFont(); font.setFontHeightInPoints((short) 16); font.setFontName("������"); CellStyle headerCellStyle = wb.createCellStyle(); headerCellStyle.setFont(font); wb.createFont(); font.setFontHeightInPoints((short) 16); font.setFontName("������"); CellStyle dataCellStyle = wb.createCellStyle(); dataCellStyle.setFont(font); dataCellStyle.setWrapText(true); //������������ row = sh.createRow(rownum++); row.setHeightInPoints(30); SXSSFCell titleCell = row.createCell(0); titleCell.setCellValue("To " + shipmentAgent.getCompanyName()); font = wb.createFont(); font.setFontHeightInPoints((short) 18); font.setFontName("������"); labelCellStyle.setFont(font); titleCell.setCellStyle(labelCellStyle); sh.addMergedRegion(CellRangeAddress.valueOf("$A$2:$F$2")); row = sh.createRow(rownum++); SXSSFCell cell = row.createCell(0); cell.setCellStyle(headerCellStyle); cell.setCellValue("������"); cell = row.createCell(1); cell.setCellStyle(headerCellStyle); cell.setCellValue("���������������������"); cell = row.createCell(2); cell.setCellStyle(headerCellStyle); cell.setCellValue("���������"); cell = row.createCell(3); cell.setCellStyle(headerCellStyle); cell.setCellValue("���������������(������)"); cell = row.createCell(4); cell.setCellStyle(headerCellStyle); cell.setCellValue("������������������"); cell = row.createCell(5); cell.setCellStyle(headerCellStyle); cell.setCellValue("������������"); LocalDate now = LocalDate.now(); LocalDateTime today = LocalDateTime.of(now.getYear(), now.getMonth(), now.getDayOfMonth(), 0, 0); List<BookingDiscountApplyRecord> bookingDiscountApplyRecords = bookingDiscountApplyRecordRepository.findByShipmentAgentAndCreatedTimeBetween(shipmentAgent, today, today.plusDays(1)); int[] widthArray = new int[6]; widthArray[0] = 5; widthArray[3] = 16; for (int i = 0; i < bookingDiscountApplyRecords.size(); i++) { BookingDiscountApplyRecord bookingDiscountApplyRecord = bookingDiscountApplyRecords.get(i); row = sh.createRow(rownum++); cell = row.createCell(0); cell.setCellStyle(dataCellStyle); cell.setCellValue(i + 1); cell = row.createCell(1); cell.setCellStyle(dataCellStyle); String ladingBillNo = bookingDiscountApplyRecord.getLadingBillNo(); cell.setCellValue(ladingBillNo); if (ladingBillNo.length() > widthArray[1]) { widthArray[1] = ladingBillNo.length(); } cell = row.createCell(2); cell.setCellStyle(dataCellStyle); cell.setCellValue("���������"); widthArray[2] = 6; cell = row.createCell(3); cell.setCellStyle(dataCellStyle); double totalDiscount = Math.round(bookingDiscountApplyRecord.totalDiscount()); cell.setCellValue(totalDiscount); /*int w = String.valueOf(totalDiscount).length(); if (w>widthArray[3]){ widthArray[3]=w; }*/ cell = row.createCell(4); StringBuilder sb = new StringBuilder(); List<Coupon> coupons = bookingDiscountApplyRecord.getCoupons(); coupons.forEach(coupon -> { sb.append(coupon.genCouponNumber() + "\n"); }); cell.setCellValue(new XSSFRichTextString(sb.toString())); if (20 > widthArray[4]) { widthArray[4] = 20; } cell.setCellStyle(dataCellStyle); cell = row.createCell(5); cell.setCellStyle(dataCellStyle); String dateStr = bookingDiscountApplyRecord.getCreatedTime().format(DateTimeFormatter.ISO_DATE_TIME); cell.setCellValue(dateStr); if (22 > widthArray[5]) { widthArray[5] = 22; } } for (int i = 0; i < widthArray.length; i++) { sh.setColumnWidth(i, widthArray[i] * 256 * 2); } FileOutputStream out = null; String newFileName = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "." + "xlsx"; try { out = new FileOutputStream("daily_statements/" + newFileName); wb.write(out); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // dispose of temporary files backing this workbook on disk wb.dispose(); String receiptName = shipmentAgent.getCompanyName(); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = null; try { helper = new MimeMessageHelper(message, true); message.setFrom(new InternetAddress("[email protected]")); } catch (MessagingException e) { e.printStackTrace(); } try { helper.setTo(shipmentAgent.getCompanyMail()); // helper.setTo("[email protected]"); StringBuilder mailBody = new StringBuilder(); mailBody.append(receiptName) .append("���\n") .append("\t������������������������������������������������ ������������") .append("\n") .append("\t������������������") .append("\n\n") .append("Sent From:") .append("���������������������������������������������"); helper.setSubject("������������������-" + LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE)); helper.setText(mailBody.toString()); FileSystemResource attachmentFile = new FileSystemResource(new File("daily_statements/" + newFileName)); helper.addAttachment(newFileName, attachmentFile); } catch (MessagingException e) { e.printStackTrace(); } try { mailSender.send(message); } catch (Exception e) { e.printStackTrace(); } }
public boolean toExcel(List<?> data, String sheetName, ExportHandler handler, OutputStream out) { required$BuilderParams(); long begin = System.currentTimeMillis(); if (data == null || data.size() < 1) { log.error("���������������������,������������������������"); return false; } log.info(String.format("������������excel���������%s���,���������..", data.size())); // ������������������ ExportConfig currentExportConfig = null; ExportItem currentExportItem = null; List<ExportItem> exportItems = new ArrayList<ExportItem>(); for (Field field : mClass.getDeclaredFields()) { currentExportConfig = field.getAnnotation(ExportConfig.class); if (currentExportConfig != null) { currentExportItem = new ExportItem() .setField(field.getName()) .setDisplay("field".equals(currentExportConfig.value()) ? field.getName() : currentExportConfig.value()) .setWidth(currentExportConfig.width()) .setConvert(currentExportConfig.convert()) .setColor(currentExportConfig.color()) .setRange(currentExportConfig.range()) .setReplace(currentExportConfig.replace()); exportItems.add(currentExportItem); } currentExportItem = null; currentExportConfig = null; } // ������������������������ SXSSFWorkbook wb = POIUtils.newSXSSFWorkbook(); double sheetNo = Math.ceil(data.size() / mMaxSheetRecords);// ������������������������sheet. // =====���sheet������������������===== for (int index = 0; index <= (sheetNo == 0.0 ? sheetNo : sheetNo - 1); index++) { SXSSFSheet sheet = POIUtils.newSXSSFSheet(wb, sheetName + (index == 0 ? "" : "_" + index)); // ������������ SXSSFRow headerRow = POIUtils.newSXSSFRow(sheet, 0); for (int i = 0; i < exportItems.size(); i++) { SXSSFCell cell = POIUtils.newSXSSFCell(headerRow, i); POIUtils.setColumnWidth(sheet, i, exportItems.get(i).getWidth(), exportItems.get(i).getDisplay()); cell.setCellValue(exportItems.get(i).getDisplay()); CellStyle style = handler.headCellStyle(wb); if (style != null) { cell.setCellStyle(style); } //������������������ ������������������������������������������������������������ ���������������������������������������������������������������������mMaxSheetRecords,��������������������������������������������������������������������� ��������������� String range = exportItems.get(i).getRange(); if (!"".equals(range)){ String[] ranges = rangeCellValues(range); POIUtils.setHSSFValidation(sheet,ranges,1,data.size(),i,i); } } // ��������������� if (data.size() > 0) { int startNo = index * mMaxSheetRecords; int endNo = Math.min(startNo + mMaxSheetRecords, data.size()); for (int i = startNo; i < endNo; i++) { SXSSFRow bodyRow = POIUtils.newSXSSFRow(sheet, i + 1 - startNo); for (int j = 0; j < exportItems.size(); j++) { // ������������������ String cellValue = exportItems.get(j).getReplace(); if ("".equals(cellValue)) { try { cellValue = BeanUtils.getProperty(data.get(i), exportItems.get(j).getField()); } catch (Exception e) { log.error("������" + exportItems.get(j).getField() + "������������.", e); } } // ��������������������� if (!"".equals(exportItems.get(j).getConvert())) { cellValue = convertCellValue(Integer.parseInt(cellValue), exportItems.get(j).getConvert()); } // ��������������� POIUtils.setColumnWidth(sheet, j, exportItems.get(j).getWidth(), cellValue); SXSSFCell cell = POIUtils.newSXSSFCell(bodyRow, j); // fix: ������������������,������index���cell��������� cell.setCellValue("".equals(cellValue) ? null : cellValue); CellStyle style = wb.createCellStyle(); Font font = wb.createFont(); font.setColor(exportItems.get(j).getColor()); style.setFont(font); //������������������������������ ��������������������������� ��������������������� DataFormat dataFormat = wb.createDataFormat(); style.setDataFormat(dataFormat.getFormat("@")); cell.setCellStyle(style); cell.setCellType(SXSSFCell.CELL_TYPE_STRING); } } } } try { // ������Excel���������������.(������response������������������������������������������������������������������������output���) POIUtils.writeByLocalOrBrowser(mResponse, handler.exportFileName(sheetName), wb, out); } catch (Exception e) { log.error("������Excel������������:" + e.getMessage(), e); return false; } log.info(String.format("Excel������������,���������������:%s��� (���������������),���������%s seconds.", (data != null ? data.size() : 0), (System.currentTimeMillis() - begin) / 1000F)); return true; }
/** * ��������������������������������� * * @param cell * ������������ * @param object * ��������������� * @param style * ������������������ * @param zeroValue * ������0������������������������ */ private static void setData(SXSSFCell cell, Object object, XSSFCellStyle style, String zeroValue) { if (style != null) { cell.setCellStyle(style); } if (object instanceof String) { cell.setCellType(XSSFCell.CELL_TYPE_STRING); cell.setCellValue((String) object); } else if (object instanceof Integer) { Integer integer = (Integer) object; if (0 == integer) { cell.setCellType(XSSFCell.CELL_TYPE_STRING); cell.setCellValue(zeroValue); } else { cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue((Integer) object); } } else if (object instanceof Double) { cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC); if (Double.isNaN((Double) object)) { cell.setCellValue(zeroValue); } else { Double value = (Double) object; if (0 == value.compareTo((Double) 0.0)) { cell.setCellValue(zeroValue); } else { cell.setCellValue((Double) object); } } } }
Usage snippet has been bookmarked! Review your bookmarks
Thank you! Review your likes