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.

193 lines
3.7 KiB

4 years ago
package com.alibaba.excel.metadata.csv;
import java.util.Iterator;
4 years ago
import java.util.List;
4 years ago
import lombok.Data;
4 years ago
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;
/**
4 years ago
* csv row
*
* @author Jiaju Zhuang
*/
4 years ago
@Data
public class CsvRow implements Row {
4 years ago
/**
* cell list
*/
private final List<CsvCell> cellList;
/**
* workbook
*/
private final CsvWorkbook csvWorkbook;
4 years ago
/**
* sheet
*/
private final CsvSheet csvSheet;
4 years ago
/**
* row index
*/
private Integer rowIndex;
/**
* style
*/
private CellStyle cellStyle;
public CsvRow(CsvWorkbook csvWorkbook, CsvSheet csvSheet, Integer rowIndex) {
4 years ago
cellList = Lists.newArrayList();
this.csvWorkbook = csvWorkbook;
4 years ago
this.csvSheet = csvSheet;
this.rowIndex = rowIndex;
}
@Override
public Cell createCell(int column) {
CsvCell cell = new CsvCell(csvWorkbook, csvSheet, this, column, null);
4 years ago
cellList.add(cell);
4 years ago
return cell;
}
@Override
public Cell createCell(int column, CellType type) {
CsvCell cell = new CsvCell(csvWorkbook, csvSheet, this, column, type);
4 years ago
cellList.add(cell);
return cell;
}
@Override
public void removeCell(Cell cell) {
4 years ago
cellList.remove(cell);
}
@Override
public void setRowNum(int rowNum) {
4 years ago
this.rowIndex = rowNum;
}
@Override
public int getRowNum() {
4 years ago
return rowIndex;
}
@Override
public Cell getCell(int cellnum) {
4 years ago
if (cellnum >= cellList.size()) {
return null;
}
return cellList.get(cellnum - 1);
}
@Override
public Cell getCell(int cellnum, MissingCellPolicy policy) {
4 years ago
return getCell(cellnum);
}
@Override
public short getFirstCellNum() {
4 years ago
if (CollectionUtils.isEmpty(cellList)) {
return -1;
}
return 0;
}
@Override
public short getLastCellNum() {
4 years ago
if (CollectionUtils.isEmpty(cellList)) {
return -1;
}
return (short)cellList.size();
}
@Override
public int getPhysicalNumberOfCells() {
4 years ago
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() {
4 years ago
return cellStyle;
}
@Override
public void setRowStyle(CellStyle style) {
4 years ago
this.cellStyle = style;
}
@Override
public Iterator<Cell> cellIterator() {
4 years ago
return (Iterator<Cell>)(Iterator<? extends Cell>)cellList.iterator();
}
@Override
public Sheet getSheet() {
4 years ago
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() {
4 years ago
return cellIterator();
}
}