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);
            }
        }
    }
  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/rdchen/p/13949529.html
Copyright © 2011-2022 走看看