block.java

来自「一个java生成自动生成Excel」· Java 代码 · 共 197 行

JAVA
197
字号
package net.sf.jxls.tag;import java.util.HashSet;import java.util.Set;import net.sf.jxls.formula.CellRef;import net.sf.jxls.formula.Formula;import net.sf.jxls.transformer.Sheet;/** * Represents rectangular range of excel cells * @author Leonid Vysochyn */public class Block {    int startRowNum;    int endRowNum;    short startCellNum;    short endCellNum;    Sheet sheet;    Set affectedColumns = new HashSet();    public Block(Sheet sheet, int startRowNum, int endRowNum) {        this.startRowNum = startRowNum;        this.endRowNum = endRowNum;        this.startCellNum = -1;        this.endCellNum = -1;        this.sheet = sheet;    }    public Block(int startRowNum, short startCellNum, int endRowNum, short endCellNum) {        this.startRowNum = startRowNum;        this.startCellNum = startCellNum;        this.endRowNum = endRowNum;        this.endCellNum = endCellNum;    }    public Block(Sheet sheet, int startRowNum, short startCellNum, int endRowNum, short endCellNum) {        this.sheet = sheet;        this.startRowNum = startRowNum;        this.startCellNum = startCellNum;        this.endRowNum = endRowNum;        this.endCellNum = endCellNum;    }    public void addAffectedColumn(short col){        affectedColumns.add( new Short(col) );    }    public Block horizontalShift(short cellShift){        startCellNum += cellShift;        endCellNum += cellShift;        return this;    }    public Block verticalShift(int rowShift){        startRowNum += rowShift;        endRowNum += rowShift;        return this;    }    public short getStartCellNum() {        return startCellNum;    }    public void setStartCellNum(short startCellNum) {        this.startCellNum = startCellNum;    }    public short getEndCellNum() {        return endCellNum;    }    public void setEndCellNum(short endCellNum) {        this.endCellNum = endCellNum;    }    public int getStartRowNum() {        return startRowNum;    }    public void setStartRowNum(int startRowNum) {        this.startRowNum = startRowNum;    }    public int getEndRowNum() {        return endRowNum;    }    public void setEndRowNum(int endRowNum) {        this.endRowNum = endRowNum;    }    public int getNumberOfRows(){        return endRowNum - startRowNum + 1;    }    public int getNumberOfColumns(){        return endCellNum - startCellNum + 1;    }    public boolean contains(int rowNum, int cellNum){        boolean flag = (startRowNum <= rowNum && rowNum <= endRowNum && ((startCellNum < 0 || endCellNum < 0) || (startCellNum <= cellNum && cellNum <= endCellNum)));        if(flag && !affectedColumns.isEmpty()){            return affectedColumns.contains( new Short( (short) cellNum) );        }        return flag;    }    public boolean contains(Formula formula){        if( formula.getSheet().getSheetName().equals( sheet.getSheetName() ) ){            return contains( formula.getRowNum().intValue(), formula.getCellNum().intValue() );        }        return false;    }    public boolean contains(Point p){        boolean flag =  (startRowNum <= p.getRow() && p.getRow() <= endRowNum &&                ((startCellNum<0 || endCellNum<0) || (startCellNum <= p.getCol() && p.getCol() <= endCellNum)));        if(flag && !affectedColumns.isEmpty()){            return affectedColumns.contains( new Short( p.getCol() ) );        }        return flag;    }    public boolean contains(CellRef cellRef){        String refSheetName = cellRef.getSheetName();        boolean flag =  ((refSheetName == null || sheet.getSheetName().equals(refSheetName)) && startRowNum <= cellRef.getRowNum() && cellRef.getRowNum() <= endRowNum &&                ((startCellNum<0 || endCellNum<0) || (startCellNum <= cellRef.getColNum() && cellRef.getColNum() <= endCellNum)));        if(flag && !affectedColumns.isEmpty()){            return affectedColumns.contains( new Short( cellRef.getColNum() ) );        }        return flag;    }    public boolean isAbove(Point p){        return (endRowNum < p.getRow());    }    public boolean isToLeft(Point p){        return (endCellNum < p.getCol());    }    public boolean isAbove(int rowNum){        return (endRowNum < rowNum);    }    public boolean isBelow(Point p){        return (startRowNum > p.getRow());    }    public boolean isRowBlock(){        return (startCellNum < 0 || endCellNum < 0 || (startCellNum > endCellNum) );    }    public boolean isColBlock(){        return (startRowNum <0 || endRowNum < 0 || (startRowNum > endRowNum) );    }    public Sheet getSheet() {        return sheet;    }    public void setSheet(Sheet sheet) {        this.sheet = sheet;    }    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        final Block block = (Block) o;        if (endCellNum != block.endCellNum) return false;        if (endRowNum != block.endRowNum) return false;        if (startCellNum != block.startCellNum) return false;        if (startRowNum != block.startRowNum) return false;        return !(sheet != null ? !sheet.equals(block.sheet) : block.sheet != null);        }    public int hashCode() {        int result;        result = startRowNum;        result = 29 * result + endRowNum;        result = 29 * result + startCellNum;        result = 29 * result + endCellNum;        result = 29 * result + (sheet != null ? sheet.hashCode() : 0);        return result;    }    public String toString() {        return "Block (" + startRowNum + ", " + startCellNum + ", " + endRowNum + ", " + endCellNum + ")";    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?