zoukankan      html  css  js  c++  java
  • 工具类Util类的注释书写规范

    package com.paic.pacz.core.salesmanage.util;
    
    import java.util.List;
    
    import org.apache.commons.beanutils.PropertyUtils;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.springframework.util.CollectionUtils;
    
    import com.paic.icore.fa.logging.Log;
    import com.paic.pacz.core.salesmanage.dto.ExportExcelDTO;
    import com.paic.pacz.core.salesmanage.dto.ExportExcelPropertyDTO;
    
    public class ExportExcelUtil{ 
        /** 日志服务 */
        private Log log;
        
        /**
         * 创建sheet
         * @param xssfWorkbook 工作簿
         * @return
         */
        private XSSFSheet createSheet(XSSFWorkbook xssfWorkbook){
            XSSFSheet sheet=xssfWorkbook.createSheet();
            log.trace("XSSFSheet 创建成功");
            return sheet;
        }
        
    
        /**
         * 设置表头值
         * @param sheet
         * @param haeders
         * @throws Exception
         */
        private void setHaeder(XSSFSheet sheet,List<String> haeders){
            // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
            XSSFRow haederRow = sheet.createRow(0);
            for(int i=0;i<haeders.size();i++){
                //创建表头的cell
                XSSFCell xssfCell=haederRow.createCell(i);
                //给表头的cell赋值
                xssfCell.setCellValue(haeders.get(i));
            }
            log.trace("Excel 表头信息设置成功");
        }
        /**
         * 给Excel添加数据
         * @param datas 数据对象集合
         * @param sheet 
         * @param cellSize 每row的cell数
         * @throws Exception
         */
        private void setExeclCellValue(List<ExportExcelPropertyDTO> datas,XSSFSheet sheet,Integer cellSize)throws Exception{
            //没有数据时终止生成数据
            if(CollectionUtils.isEmpty(datas))return;
            int rowIndex=1;//数据行从第1行开始,第0行为表头
            //循环给 每row的每cell赋值
            for(ExportExcelPropertyDTO exportExcelPropertyDTO:datas){
                XSSFRow dataRow=sheet.createRow(rowIndex);
                setCellVal(exportExcelPropertyDTO, dataRow, cellSize);
                rowIndex++;
            }
            //赋值完成 清空数据对象集合
            datas.clear();
            log.trace("Excel 数据添加成功");
        }
    
        /**
         * 设置cell的值
         * @param excelDTO 数据对象
         * @param dataRow excel的行
         * @param cellSize 每行的cell的数量
         * @throws Exception
         */
        private void setCellVal(ExportExcelPropertyDTO exportExcelPropertyDTO,XSSFRow dataRow,Integer cellSize)throws Exception{
            for(int i=0;i<cellSize;i++){
                //创建 cell
                XSSFCell cell=dataRow.createCell(i);
                //生成数据对象的属性(property)
                String property="porp"+i;
                //获取数据对象中对应属性(property)的值
                Object val=null;
                try{
                    val=PropertyUtils.getProperty(exportExcelPropertyDTO, property);
                }catch(Exception e){
                    log.error("获取属性::"+property+" 的值出错!Message:::"+e.getMessage(), e);
                }
                if(!CommonUtil.isNull(val)){//值不为空时,赋值
                    if(val instanceof Double){
                        cell.setCellValue(Double.parseDouble(val.toString()));//统一转成String的数据
                    }else{
                        cell.setCellValue(val.toString());//统一转成String的数据
                    }
                    
                }else{//值为空时,赋值""
                    cell.setCellValue("");
                }
            }
            log.trace("每行设置值成功");
        }
    
        /**
         * 导出Excel文件
         * @param httpServletResponse
         * @param exportExcelDTO
         * @throws Exception
         */
        public void exportExcel(XSSFWorkbook workbook,ExportExcelDTO exportExcelDTO) throws Exception{
            //表头信息为空是终止导出数据
            if(CollectionUtils.isEmpty(exportExcelDTO.getHeaders()))return;
            //创建sheet
            XSSFSheet sheet=createSheet(workbook);
            //设置表头信息
            setHaeder(sheet, exportExcelDTO.getHeaders());
            //获取每一行row的cell的数量
            Integer cellSize=exportExcelDTO.getHeaders().size();
            //给row的cell赋值
            setExeclCellValue(exportExcelDTO.getExcelPropertyDTOs(), sheet,cellSize);
        }
        
    
        public Log getLog() {
            return log;
        }
        public void setLog(Log log) {
            this.log = log;
        }
        
    }
  • 相关阅读:
    谈谈JavaScript中继承方式
    《前端架构设计》学习笔记一--架构的种子
    正则中1的用法---反向引用
    JavaScript千分符---正则实现
    JavaScript开发中常用的代码规范配置文件
    前端开发流程---我们应该做些什么
    JavaScript中数据类型判断
    冒泡排序以及改进
    Number和toString中的坑
    Fluent Ribbon 第五步 ToolBar
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6402748.html
Copyright © 2011-2022 走看看