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

📄 rowcollection.java

📁 一个java生成自动生成Excel
💻 JAVA
字号:
package net.sf.jxls.transformer;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import net.sf.jxls.parser.Cell;import net.sf.jxls.parser.Property;/** * Contains information about collections in a row of XLS template * @author Leonid Vysochyn */public class RowCollection {    /**     * The number of dependent rows for this collection     */    private int dependentRowNumber = 0;    /**     * Collection property     */    private Property collectionProperty;    /**     * List of {@link net.sf.jxls.parser.Cell} objects related to the collection     */    private List cells = new ArrayList();    /**     * {@link net.sf.jxls.transformer.Row} object containing this collection     */    private Row parentRow;    private String collectionItemName;    private int numberOfRows;    public RowCollection(Row parentRow, Property collectionProperty, int dependentRowNumber) {        this.parentRow = parentRow;        setCollectionProperty( collectionProperty, dependentRowNumber );    }    public RowCollection(Property property) {        setCollectionProperty( property, 0 );    }    public RowCollection(Property collectionProperty, int dependentRowNumber) {        this.dependentRowNumber = dependentRowNumber;        setCollectionProperty( collectionProperty, dependentRowNumber );    }    public Row getParentRow() {        return parentRow;    }    public void setParentRow(Row parentRow) {        this.parentRow = parentRow;    }    public void addCell(Cell cell){        cells.add( cell );        cell.setRowCollection( this );    }    public Property getCollectionProperty() {        return collectionProperty;    }    private void setCollectionProperty(Property collectionProperty, int dependentRowNumber){        this.dependentRowNumber = dependentRowNumber;        this.collectionProperty = collectionProperty;        numberOfRows = (collectionProperty.getCollection().size() - 1)*(dependentRowNumber + 1);    }    public List getCells() {        return cells;    }    public int getDependentRowNumber() {        return dependentRowNumber;    }    public void setDependentRowNumber(int dependentRowNumber) {        this.dependentRowNumber = dependentRowNumber;    }    public boolean containsCell(Cell cell){        return cell.getHssfCell() == null ||                (cell.getRowCollection() != null &&                        collectionProperty.getFullCollectionName().equals(cell.getRowCollection().getCollectionProperty().getFullCollectionName()));    }    public String getCollectionItemName() {        return collectionItemName;    }    public void setCollectionItemName(String collectionItemName) {        this.collectionItemName = collectionItemName;    }    public int getNumberOfRows(){        return numberOfRows;    }    private Iterator iterator;    private int iterateStep;    private int iterateIndex;    private Object iterateObject;    /**     * @return Current Collection Item being iterated     */    public Object getIterateObject() {        return iterateObject;    }    /**     * @return next object in the collection     */    public Object getNextObject(){        if( (iterateIndex % (dependentRowNumber+1)) == 0 ){            iterateObject = iterator.next();        }        iterateIndex += iterateStep + 1;        return iterateObject;    }    /**     *     * @return true if the next invocation of getNextObject() will return object in the collection or false otherwise     */    public boolean hasNextObject(){        return iterator.hasNext();    }    public void createIterator(int step){        if( step != dependentRowNumber ){            throw new IllegalArgumentException("Not supported yet");            // todo: implement the case when iterateStep is lesser than dependentRowNumber            //throw new IllegalArgumentException("IterateStep must be lesser or equal to dependentRowNumber, iterateStep=" + step + ", dependentRowNumber" + dependentRowNumber);        }        iterator = collectionProperty.getCollection().iterator();        this.iterateStep = step;        iterateIndex = 0;    }    public List getRowCollectionCells(){        List columnNumbers = new ArrayList();        for (int i = 0; i < parentRow.getCells().size(); i++) {            Cell cell = (Cell) parentRow.getCells().get(i);            if( containsCell( cell ) ){                columnNumbers.add( cell );            }        }        return columnNumbers;    }    /**     * @return Collection Name associated with this row collection     */    public String toString() {        return collectionProperty.getFullCollectionName();    }}

⌨️ 快捷键说明

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