forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
3.7 KiB
192 lines
3.7 KiB
package com.alibaba.excel.metadata.csv; |
|
|
|
import java.util.Iterator; |
|
import java.util.List; |
|
|
|
import lombok.Data; |
|
import org.apache.commons.collections4.CollectionUtils; |
|
import org.apache.commons.compress.utils.Lists; |
|
import org.apache.poi.ss.usermodel.Cell; |
|
import org.apache.poi.ss.usermodel.CellStyle; |
|
import org.apache.poi.ss.usermodel.CellType; |
|
import org.apache.poi.ss.usermodel.Row; |
|
import org.apache.poi.ss.usermodel.Sheet; |
|
|
|
/** |
|
* csv row |
|
* |
|
* @author Jiaju Zhuang |
|
*/ |
|
@Data |
|
public class CsvRow implements Row { |
|
|
|
/** |
|
* cell list |
|
*/ |
|
private final List<CsvCell> cellList; |
|
|
|
/** |
|
* workbook |
|
*/ |
|
private final CsvWorkbook csvWorkbook; |
|
|
|
/** |
|
* sheet |
|
*/ |
|
private final CsvSheet csvSheet; |
|
|
|
/** |
|
* row index |
|
*/ |
|
private Integer rowIndex; |
|
|
|
/** |
|
* style |
|
*/ |
|
private CellStyle cellStyle; |
|
|
|
public CsvRow(CsvWorkbook csvWorkbook, CsvSheet csvSheet, Integer rowIndex) { |
|
cellList = Lists.newArrayList(); |
|
this.csvWorkbook = csvWorkbook; |
|
this.csvSheet = csvSheet; |
|
this.rowIndex = rowIndex; |
|
} |
|
|
|
@Override |
|
public Cell createCell(int column) { |
|
CsvCell cell = new CsvCell(csvWorkbook, csvSheet, this, column, null); |
|
cellList.add(cell); |
|
return cell; |
|
} |
|
|
|
@Override |
|
public Cell createCell(int column, CellType type) { |
|
CsvCell cell = new CsvCell(csvWorkbook, csvSheet, this, column, type); |
|
cellList.add(cell); |
|
return cell; |
|
} |
|
|
|
@Override |
|
public void removeCell(Cell cell) { |
|
cellList.remove(cell); |
|
} |
|
|
|
@Override |
|
public void setRowNum(int rowNum) { |
|
this.rowIndex = rowNum; |
|
} |
|
|
|
@Override |
|
public int getRowNum() { |
|
return rowIndex; |
|
} |
|
|
|
@Override |
|
public Cell getCell(int cellnum) { |
|
if (cellnum >= cellList.size()) { |
|
return null; |
|
} |
|
return cellList.get(cellnum - 1); |
|
} |
|
|
|
@Override |
|
public Cell getCell(int cellnum, MissingCellPolicy policy) { |
|
return getCell(cellnum); |
|
} |
|
|
|
@Override |
|
public short getFirstCellNum() { |
|
if (CollectionUtils.isEmpty(cellList)) { |
|
return -1; |
|
} |
|
return 0; |
|
} |
|
|
|
@Override |
|
public short getLastCellNum() { |
|
if (CollectionUtils.isEmpty(cellList)) { |
|
return -1; |
|
} |
|
return (short)cellList.size(); |
|
} |
|
|
|
@Override |
|
public int getPhysicalNumberOfCells() { |
|
return getRowNum(); |
|
} |
|
|
|
@Override |
|
public void setHeight(short height) { |
|
|
|
} |
|
|
|
@Override |
|
public void setZeroHeight(boolean zHeight) { |
|
|
|
} |
|
|
|
@Override |
|
public boolean getZeroHeight() { |
|
return false; |
|
} |
|
|
|
@Override |
|
public void setHeightInPoints(float height) { |
|
|
|
} |
|
|
|
@Override |
|
public short getHeight() { |
|
return 0; |
|
} |
|
|
|
@Override |
|
public float getHeightInPoints() { |
|
return 0; |
|
} |
|
|
|
@Override |
|
public boolean isFormatted() { |
|
return false; |
|
} |
|
|
|
@Override |
|
public CellStyle getRowStyle() { |
|
return cellStyle; |
|
} |
|
|
|
@Override |
|
public void setRowStyle(CellStyle style) { |
|
this.cellStyle = style; |
|
} |
|
|
|
@Override |
|
public Iterator<Cell> cellIterator() { |
|
return (Iterator<Cell>)(Iterator<? extends Cell>)cellList.iterator(); |
|
} |
|
|
|
@Override |
|
public Sheet getSheet() { |
|
return csvSheet; |
|
} |
|
|
|
@Override |
|
public int getOutlineLevel() { |
|
return 0; |
|
} |
|
|
|
@Override |
|
public void shiftCellsRight(int firstShiftColumnIndex, int lastShiftColumnIndex, int step) { |
|
|
|
} |
|
|
|
@Override |
|
public void shiftCellsLeft(int firstShiftColumnIndex, int lastShiftColumnIndex, int step) { |
|
|
|
} |
|
|
|
@Override |
|
public Iterator<Cell> iterator() { |
|
return cellIterator(); |
|
} |
|
}
|
|
|