zoukankan      html  css  js  c++  java
  • util之ExcelUtil

    package com.xxx.util;
    
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.ss.usermodel.BorderStyle;
    
    public class ExcelUtil {
        public static HSSFCellStyle createCellStyle(HSSFWorkbook wb) {
            HSSFCellStyle cellStyle = wb.createCellStyle();
    
            cellStyle.setBorderBottom(BorderStyle.THIN); // 底部边框
            cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);// 底部边框颜色
    
            // cellStyle.setBorderLeft(BorderStyle.MEDIUM_DASH_DOT_DOT); // 左边框
            // cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);// 左边框颜色
    
            cellStyle.setBorderRight(BorderStyle.THIN);
            cellStyle.setRightBorderColor(HSSFColor.BLACK.index);// 左边框颜色
    
            // cellStyle.setBorderTop(BorderStyle.MEDIUM_DASH_DOT_DOT);
            // cellStyle.setTopBorderColor(HSSFColor.BLACK.index);// 左边框颜色
    
            return cellStyle;
        }
    
        /**
         * @param sheet
         * @param row
         *            如果当前行是空行,则创建当前行
         * @param i
         * @return
         */
        public static HSSFRow getNotNullRow(HSSFSheet sheet, int i) {
            HSSFRow row = sheet.getRow(i);
            if (row == null) {
                row = sheet.createRow(i);
            }
            return row;
        }
    
        /**
         * @param sheet
         * @param row
         *            如果当格子是空的,则创建当前格子
         * @param i
         * @return
         */
        public static HSSFCell getNotNullCell(HSSFRow row, int i) {
            HSSFCell cell = row.getCell(i);
            if (cell == null) {
                cell = row.createCell(i);
            }
    
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            return cell;
        }
    
        /**
         * @param sheet
         * @param row
         *            如果当格子是空的,则创建当前格子
         * @param i
         * @return
         */
        public static HSSFCell getNotNullCell(HSSFWorkbook wb, HSSFRow row, int i) {
            HSSFCell cell = row.getCell(i);
            if (cell == null) {
                cell = row.createCell(i);
    
                HSSFCellStyle cellStyle = createCellStyle(wb);
                cell.setCellStyle(cellStyle);
            }
    
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            return cell;
        }
    
        /**
         * 获取单元格的值 -不管格子的数据是何类型,自动返回相应的值
         * 
         * @param cell
         * @return
         */
        public static String getCellValue(HSSFCell cell) {
            if (cell == null)
                return "";
            if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
                return cell.getStringCellValue();
            } else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
                return String.valueOf(cell.getBooleanCellValue());
            } else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
                return cell.getCellFormula();
            } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
                return String.valueOf(cell.getNumericCellValue());
            }
            return "";
        }
    
        /**
         * 设置整个sheet每个单元格宽度自适应
         * 
         * @param sheet
         * @throws Exception
         */
        public static void setAutoWith(HSSFSheet sheet) throws Exception {
            int maxColumn = sheet.getPhysicalNumberOfRows();
            // 列宽自适应,只对英文和数字有效
            for (int i = 0; i <= maxColumn; i++) {
                sheet.autoSizeColumn(i);
            }
        }
    }
  • 相关阅读:
    MySQL服务端恶意读取客户端文件漏洞 (DDCTF2019和国赛均涉及到这个漏洞)
    (转载)基于BIGINT溢出错误的SQL注入
    程序逻辑问题
    ansible笔记
    centos6 sersync2使用
    vsftpd服务
    rsync和rsync后台模式
    mysql5.6和5.7安装 centos
    mysql5.7-my.cnf
    bind-dns服务器搭建
  • 原文地址:https://www.cnblogs.com/rdchen/p/13949529.html
Copyright © 2011-2022 走看看