⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 row.java

📁 一个java生成自动生成Excel
💻 JAVA
字号:
package net.sf.jxls.transformer;import java.util.ArrayList;import java.util.List;import net.sf.jxls.parser.Cell;import net.sf.jxls.parser.Property;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.util.Region;/** * Represents single row in excel transformation * @author Leonid Vysochyn */public class Row {    /**     * POI {@link org.apache.poi.hssf.usermodel.HSSFRow} object for the row     */    private HSSFRow hssfRow;    private Sheet sheet;    /**     * List of {@link Cell} objects for this Row     */    private List cells = new ArrayList();    /**     * List of {@link RowCollection} objects for this row     */    private List rowCollections = new ArrayList();    /**     * List of all merged regions found in this row     */    private List mergedRegions = new ArrayList();    /**     * Parent {@link Row} object if there is any     */    private Row parentRow;    /**     * @return Parent {@link Row} object if there is any     */    public Row getParentRow() {        return parentRow;    }    public void setParentRow(Row parentRow) {        this.parentRow = parentRow;    }    public Row(Sheet sheet, HSSFRow hssfRow) {        this.sheet = sheet;        this.hssfRow = hssfRow;    }    public Sheet getSheet() {        return sheet;    }    public void setSheet(Sheet sheet) {        this.sheet = sheet;    }    /**     * @return {@link RowCollection} in this row having maximum number of rows     */    public RowCollection getMaxNumberOfRowsCollection(){        if( rowCollections.size() == 0 ){            return null;        }        RowCollection maxNumberOfRowsCollection = (RowCollection) rowCollections.get(0);        for (int i = 1; i < rowCollections.size(); i++) {            RowCollection rowCollection = (RowCollection) rowCollections.get(i);            if( rowCollection.getNumberOfRows() > maxNumberOfRowsCollection.getNumberOfRows() ){                maxNumberOfRowsCollection = rowCollection;            }        }        return maxNumberOfRowsCollection;    }    /**     * @return {@link RowCollection} in this row with maximum number of items     */    public RowCollection getMaxSizeCollection(){        if( rowCollections.size() == 0 ){            return null;        }        RowCollection maxSizeRowCollection = (RowCollection) rowCollections.get(0);        for (int i = 1; i < rowCollections.size(); i++) {            RowCollection rowCollection = (RowCollection) rowCollections.get(i);            if( rowCollection.getCollectionProperty().getCollection().size() >                    maxSizeRowCollection.getCollectionProperty().getCollection().size() ){                maxSizeRowCollection = rowCollection;            }        }        return maxSizeRowCollection;    }    /**     * Founds {@link RowCollection} with given collection name in this row     * @param collectionName - Collection name used to seek required RowCollection     * @return {@link RowCollection} in this row having collection with required name     */    public RowCollection getRowCollectionByCollectionName(String collectionName){        for (int i = 0; i < rowCollections.size(); i++) {            RowCollection rowCollection = (RowCollection) rowCollections.get(i);            if( rowCollection.getCollectionProperty().getFullCollectionName().equals( collectionName )){                return rowCollection;            }        }        return null;    }    /**     * Returns list with all {@link RowCollection} objects for this row     * @return list of {@link RowCollection} objects     */    public List getRowCollections() {        return rowCollections;    }    /**     * Returns {@link RowCollection} corresponding to a collectionProperty.     * Creates a new one if there is not any     * @param collectionProperty - Collection property name corresponding RowCollection to find     * @return {@link RowCollection} corresponding to the collectionProperty     */    private RowCollection getRowCollection(Property collectionProperty, int dependentRowNumber){        for (int i = 0; i < rowCollections.size(); i++) {            RowCollection rowCollection = (RowCollection) rowCollections.get(i);            if( rowCollection.getCollectionProperty().getFullCollectionName().equals(collectionProperty.getFullCollectionName()) ){                return rowCollection;            }        }        RowCollection rowCollection = new RowCollection( this, collectionProperty, dependentRowNumber );        rowCollections.add( rowCollection );        return rowCollection;    }    /**     * Adds {@link RowCollection} object to the row collection list     * @param rowCollection {@link RowCollection} to add     */    public void addRowCollection(RowCollection rowCollection){        rowCollections.add( rowCollection );    }    /**     * Adds {@link net.sf.jxls.transformer.MergedRegion} to the list of merged regions in this row     * @param mergedRegion {@link net.sf.jxls.transformer.MergedRegion} to add     */    private void addMergedRegion(MergedRegion mergedRegion){        mergedRegions.add( mergedRegion );    }    /**     * Adds {@link Cell} object to the list of cells for this row     * @param cell Cell to add     * @return {@link RowCollection} object if given cell has row collection or null if it has not     */    public RowCollection addCell(Cell cell){        RowCollection rowCollection = null;        cells.add( cell );        if (cell.getCollectionProperty() != null) {            rowCollection = getRowCollection( cell.getCollectionProperty(), cell.getDependentRowNumber() );            rowCollection.addCell( cell );            if( cell.getMergedRegion()!=null ){                MergedRegion mergedRegion = new MergedRegion( cell.getMergedRegion(), rowCollection );                addMergedRegion( mergedRegion );            }        }else if( cell.getMergedRegion()!=null && cell.isEmpty()){            rowCollection = getRowCollection( cell.getMergedRegion() );            if( rowCollection!=null ){                rowCollection.addCell( cell );            }        }        return rowCollection;    }    private RowCollection getRowCollection(Region mergedRegion) {        for (int i = 0; i < mergedRegions.size(); i++) {            MergedRegion region = (MergedRegion) mergedRegions.get(i);            if( region.getRegion().equals( mergedRegion ) ){                return region.getRowCollection();            }        }        return null;    }    /**     * @return List of all {@link Cell} objects for this row     */    public List getCells() {        return cells;    }    public void setCells(List cells) {        this.cells = cells;    }    /**     * @return POI {@link org.apache.poi.hssf.usermodel.HSSFRow} object for the row     */    public HSSFRow getHssfRow() {        return hssfRow;    }    public void setHssfRow(HSSFRow hssfRow) {        this.hssfRow = hssfRow;    }    /**     * @return The minimal dependent row number for this row     */    public int getMinDependentRowNumber() {        if( rowCollections.size() == 0 ){            return 0;        }        int minDependentRowNumber = ((RowCollection)rowCollections.get(0)).getDependentRowNumber();        for (int i = 1; i < rowCollections.size(); i++) {            RowCollection rowCollection = (RowCollection) rowCollections.get(i);            if( rowCollection.getDependentRowNumber() < minDependentRowNumber ){                minDependentRowNumber = rowCollection.getDependentRowNumber();            }        }        return minDependentRowNumber;    }}

⌨️ 快捷键说明

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