mirror of https://github.com/alibaba/easyexcel
Jiaju Zhuang
3 years ago
committed by
GitHub
279 changed files with 8526 additions and 5409 deletions
@ -0,0 +1,2 @@
|
||||
lombok.toString.callSuper = CALL |
||||
lombok.equalsAndHashCode.callSuper= CALL |
@ -0,0 +1,122 @@
|
||||
package com.alibaba.excel.analysis.csv; |
||||
|
||||
import java.io.FileReader; |
||||
import java.io.IOException; |
||||
import java.io.InputStreamReader; |
||||
import java.util.ArrayList; |
||||
import java.util.Iterator; |
||||
import java.util.LinkedHashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
import com.alibaba.excel.analysis.ExcelReadExecutor; |
||||
import com.alibaba.excel.context.csv.CsvReadContext; |
||||
import com.alibaba.excel.enums.CellDataTypeEnum; |
||||
import com.alibaba.excel.enums.RowTypeEnum; |
||||
import com.alibaba.excel.exception.ExcelAnalysisException; |
||||
import com.alibaba.excel.metadata.Cell; |
||||
import com.alibaba.excel.metadata.data.ReadCellData; |
||||
import com.alibaba.excel.read.metadata.ReadSheet; |
||||
import com.alibaba.excel.read.metadata.holder.ReadRowHolder; |
||||
import com.alibaba.excel.read.metadata.holder.csv.CsvReadWorkbookHolder; |
||||
import com.alibaba.excel.util.SheetUtils; |
||||
import com.alibaba.excel.util.StringUtils; |
||||
|
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.commons.collections4.MapUtils; |
||||
import org.apache.commons.csv.CSVFormat; |
||||
import org.apache.commons.csv.CSVRecord; |
||||
|
||||
/** |
||||
* read executor |
||||
* |
||||
* @author zhuangjiaju |
||||
*/ |
||||
@Slf4j |
||||
public class CsvExcelReadExecutor implements ExcelReadExecutor { |
||||
|
||||
private List<ReadSheet> sheetList; |
||||
private CsvReadContext csvReadContext; |
||||
|
||||
public CsvExcelReadExecutor(CsvReadContext csvReadContext) { |
||||
this.csvReadContext = csvReadContext; |
||||
sheetList = new ArrayList<>(); |
||||
ReadSheet readSheet = new ReadSheet(); |
||||
sheetList.add(readSheet); |
||||
readSheet.setSheetNo(0); |
||||
} |
||||
|
||||
@Override |
||||
public List<ReadSheet> sheetList() { |
||||
return sheetList; |
||||
} |
||||
|
||||
@Override |
||||
public void execute() { |
||||
Iterable<CSVRecord> parseRecords; |
||||
try { |
||||
parseRecords = parseRecords(); |
||||
} catch (IOException e) { |
||||
throw new ExcelAnalysisException(e); |
||||
} |
||||
for (ReadSheet readSheet : sheetList) { |
||||
readSheet = SheetUtils.match(readSheet, csvReadContext); |
||||
if (readSheet == null) { |
||||
continue; |
||||
} |
||||
csvReadContext.currentSheet(readSheet); |
||||
|
||||
int rowIndex = 0; |
||||
|
||||
for (CSVRecord record : parseRecords) { |
||||
dealRecord(record, rowIndex++); |
||||
} |
||||
|
||||
// The last sheet is read
|
||||
csvReadContext.analysisEventProcessor().endSheet(csvReadContext); |
||||
} |
||||
} |
||||
|
||||
private Iterable<CSVRecord> parseRecords() throws IOException { |
||||
CsvReadWorkbookHolder csvReadWorkbookHolder = csvReadContext.csvReadWorkbookHolder(); |
||||
CSVFormat csvFormat = csvReadWorkbookHolder.getCsvFormat(); |
||||
|
||||
if (csvReadWorkbookHolder.getMandatoryUseInputStream()) { |
||||
return csvFormat.parse(new InputStreamReader(csvReadWorkbookHolder.getInputStream())); |
||||
} |
||||
if (csvReadWorkbookHolder.getFile() != null) { |
||||
return csvFormat.parse(new FileReader(csvReadWorkbookHolder.getFile())); |
||||
} |
||||
return csvFormat.parse(new InputStreamReader(csvReadWorkbookHolder.getInputStream())); |
||||
} |
||||
|
||||
private void dealRecord(CSVRecord record, int rowIndex) { |
||||
Map<Integer, Cell> cellMap = new LinkedHashMap<>(); |
||||
Iterator<String> cellIterator = record.iterator(); |
||||
int columnIndex = 0; |
||||
while (cellIterator.hasNext()) { |
||||
String cellString = cellIterator.next(); |
||||
ReadCellData<String> readCellData = new ReadCellData<>(); |
||||
readCellData.setRowIndex(rowIndex); |
||||
readCellData.setColumnIndex(columnIndex); |
||||
|
||||
// csv is an empty string of whether <code>,,</code> is read or <code>,"",</code>
|
||||
if (StringUtils.isNotBlank(cellString)) { |
||||
readCellData.setType(CellDataTypeEnum.STRING); |
||||
readCellData.setStringValue(cellString); |
||||
} else { |
||||
readCellData.setType(CellDataTypeEnum.EMPTY); |
||||
} |
||||
cellMap.put(columnIndex++, readCellData); |
||||
} |
||||
|
||||
RowTypeEnum rowType = MapUtils.isEmpty(cellMap) ? RowTypeEnum.EMPTY : RowTypeEnum.DATA; |
||||
ReadRowHolder readRowHolder = new ReadRowHolder(rowIndex, rowType, |
||||
csvReadContext.readWorkbookHolder().getGlobalConfiguration(), cellMap); |
||||
csvReadContext.readRowHolder(readRowHolder); |
||||
|
||||
csvReadContext.csvReadSheetHolder().setCellMap(cellMap); |
||||
csvReadContext.csvReadSheetHolder().setRowIndex(rowIndex); |
||||
csvReadContext.analysisEventProcessor().endRow(csvReadContext); |
||||
} |
||||
} |
@ -0,0 +1,24 @@
|
||||
package com.alibaba.excel.constant; |
||||
|
||||
/** |
||||
* Order constant. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public class OrderConstant { |
||||
|
||||
/** |
||||
* Define style. |
||||
*/ |
||||
public static final int DEFINE_STYLE = -50000; |
||||
|
||||
/** |
||||
* default order. |
||||
*/ |
||||
public static final int DEFAULT_ORDER = 0; |
||||
|
||||
/** |
||||
* Sorting of styles written to cells. |
||||
*/ |
||||
public static final int FILL_STYLE = 50000; |
||||
} |
@ -0,0 +1,26 @@
|
||||
package com.alibaba.excel.context.csv; |
||||
|
||||
import com.alibaba.excel.context.AnalysisContext; |
||||
import com.alibaba.excel.read.metadata.holder.csv.CsvReadSheetHolder; |
||||
import com.alibaba.excel.read.metadata.holder.csv.CsvReadWorkbookHolder; |
||||
|
||||
/** |
||||
* A context is the main anchorage point of a ls xls reader. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
**/ |
||||
public interface CsvReadContext extends AnalysisContext { |
||||
/** |
||||
* All information about the workbook you are currently working on. |
||||
* |
||||
* @return Current workbook holder |
||||
*/ |
||||
CsvReadWorkbookHolder csvReadWorkbookHolder(); |
||||
|
||||
/** |
||||
* All information about the sheet you are currently working on. |
||||
* |
||||
* @return Current sheet holder |
||||
*/ |
||||
CsvReadSheetHolder csvReadSheetHolder(); |
||||
} |
@ -0,0 +1,29 @@
|
||||
package com.alibaba.excel.context.csv; |
||||
|
||||
import com.alibaba.excel.context.AnalysisContextImpl; |
||||
import com.alibaba.excel.read.metadata.ReadWorkbook; |
||||
import com.alibaba.excel.read.metadata.holder.csv.CsvReadSheetHolder; |
||||
import com.alibaba.excel.read.metadata.holder.csv.CsvReadWorkbookHolder; |
||||
import com.alibaba.excel.support.ExcelTypeEnum; |
||||
|
||||
/** |
||||
* A context is the main anchorage point of a ls xls reader. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public class DefaultCsvReadContext extends AnalysisContextImpl implements CsvReadContext { |
||||
|
||||
public DefaultCsvReadContext(ReadWorkbook readWorkbook, ExcelTypeEnum actualExcelType) { |
||||
super(readWorkbook, actualExcelType); |
||||
} |
||||
|
||||
@Override |
||||
public CsvReadWorkbookHolder csvReadWorkbookHolder() { |
||||
return (CsvReadWorkbookHolder)readWorkbookHolder(); |
||||
} |
||||
|
||||
@Override |
||||
public CsvReadSheetHolder csvReadSheetHolder() { |
||||
return (CsvReadSheetHolder)readSheetHolder(); |
||||
} |
||||
} |
@ -1,36 +1,9 @@
|
||||
package com.alibaba.excel.converters; |
||||
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum; |
||||
import com.alibaba.excel.metadata.CellData; |
||||
import com.alibaba.excel.metadata.GlobalConfiguration; |
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
||||
|
||||
/** |
||||
* An empty converter.It's automatically converted by type. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public class AutoConverter implements Converter { |
||||
|
||||
@Override |
||||
public Class supportJavaTypeKey() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public CellDataTypeEnum supportExcelTypeKey() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public Object convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, |
||||
GlobalConfiguration globalConfiguration) { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public CellData convertToExcelData(Object value, ExcelContentProperty contentProperty, |
||||
GlobalConfiguration globalConfiguration) { |
||||
return null; |
||||
} |
||||
public class AutoConverter implements Converter<Object> { |
||||
} |
||||
|
@ -0,0 +1,10 @@
|
||||
package com.alibaba.excel.converters; |
||||
|
||||
/** |
||||
* When implementing <code>convertToExcelData</code> method, pay attention to the reference <code>value</code> may be |
||||
* null |
||||
* |
||||
* @author JiaJu Zhuang |
||||
**/ |
||||
public interface NullableObjectConverter<T> extends Converter<T> { |
||||
} |
@ -0,0 +1,30 @@
|
||||
package com.alibaba.excel.converters; |
||||
|
||||
import com.alibaba.excel.context.AnalysisContext; |
||||
import com.alibaba.excel.metadata.data.ReadCellData; |
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
||||
|
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* read converter context |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
@Data |
||||
@AllArgsConstructor |
||||
public class ReadConverterContext<T> { |
||||
/** |
||||
* Excel cell data.NotNull. |
||||
*/ |
||||
private ReadCellData<T> readCellData; |
||||
/** |
||||
* Content property.Nullable. |
||||
*/ |
||||
private ExcelContentProperty contentProperty; |
||||
/** |
||||
* context.NotNull. |
||||
*/ |
||||
private AnalysisContext analysisContext; |
||||
} |
@ -0,0 +1,32 @@
|
||||
package com.alibaba.excel.converters; |
||||
|
||||
import com.alibaba.excel.context.WriteContext; |
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
||||
|
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* write converter context |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
@Data |
||||
@AllArgsConstructor |
||||
public class WriteConverterContext<T> { |
||||
|
||||
/** |
||||
* Java Data.NotNull. |
||||
*/ |
||||
private T value; |
||||
|
||||
/** |
||||
* Content property.Nullable. |
||||
*/ |
||||
private ExcelContentProperty contentProperty; |
||||
|
||||
/** |
||||
* write context |
||||
*/ |
||||
private WriteContext writeContext; |
||||
} |
@ -0,0 +1,34 @@
|
||||
package com.alibaba.excel.converters.date; |
||||
|
||||
import java.util.Date; |
||||
|
||||
import com.alibaba.excel.converters.Converter; |
||||
import com.alibaba.excel.metadata.GlobalConfiguration; |
||||
import com.alibaba.excel.metadata.data.WriteCellData; |
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
||||
import com.alibaba.excel.util.DateUtils; |
||||
import com.alibaba.excel.util.WorkBookUtil; |
||||
|
||||
/** |
||||
* Date and date converter |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public class DateDateConverter implements Converter<Date> { |
||||
@Override |
||||
public Class<Date> supportJavaTypeKey() { |
||||
return Date.class; |
||||
} |
||||
|
||||
@Override |
||||
public WriteCellData<?> convertToExcelData(Date value, ExcelContentProperty contentProperty, |
||||
GlobalConfiguration globalConfiguration) throws Exception { |
||||
WriteCellData<?> cellData = new WriteCellData<>(value); |
||||
String format = null; |
||||
if (contentProperty != null && contentProperty.getDateTimeFormatProperty() != null) { |
||||
format = contentProperty.getDateTimeFormatProperty().getFormat(); |
||||
} |
||||
WorkBookUtil.fillDataFormat(cellData, format, DateUtils.defaultDateFormat); |
||||
return cellData; |
||||
} |
||||
} |
@ -0,0 +1,22 @@
|
||||
package com.alibaba.excel.enums; |
||||
|
||||
import org.apache.poi.ss.usermodel.CellType; |
||||
|
||||
/** |
||||
* Used to supplement {@link CellType}. |
||||
* |
||||
* Cannot distinguish between date and number in write case. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public enum NumericCellTypeEnum { |
||||
/** |
||||
* number |
||||
*/ |
||||
NUMBER, |
||||
/** |
||||
* date. Support only when writing. |
||||
*/ |
||||
DATE, |
||||
; |
||||
} |
@ -1,8 +1,21 @@
|
||||
package com.alibaba.excel.event; |
||||
|
||||
import com.alibaba.excel.constant.OrderConstant; |
||||
|
||||
/** |
||||
* Intercepts handle some business logic |
||||
* |
||||
* @author Jiaju Zhuang |
||||
**/ |
||||
public interface Handler {} |
||||
public interface Handler extends Order { |
||||
|
||||
/** |
||||
* handler order |
||||
* |
||||
* @return order |
||||
*/ |
||||
@Override |
||||
default int order() { |
||||
return OrderConstant.DEFAULT_ORDER; |
||||
} |
||||
} |
||||
|
@ -1,38 +0,0 @@
|
||||
package com.alibaba.excel.event; |
||||
|
||||
import org.apache.poi.ss.usermodel.Cell; |
||||
import org.apache.poi.ss.usermodel.Row; |
||||
import org.apache.poi.ss.usermodel.Sheet; |
||||
|
||||
/** |
||||
* |
||||
* @author jipengfei |
||||
* @deprecated please use {@link com.alibaba.excel.write.handler.WriteHandler} |
||||
*/ |
||||
@Deprecated |
||||
public interface WriteHandler { |
||||
|
||||
/** |
||||
* Custom operation after creating each sheet |
||||
* |
||||
* @param sheetNo |
||||
* @param sheet |
||||
*/ |
||||
void sheet(int sheetNo, Sheet sheet); |
||||
|
||||
/** |
||||
* Custom operation after creating each row |
||||
* |
||||
* @param rowNum |
||||
* @param row |
||||
*/ |
||||
void row(int rowNum, Row row); |
||||
|
||||
/** |
||||
* Custom operation after creating each cell |
||||
* |
||||
* @param cellNum |
||||
* @param cell |
||||
*/ |
||||
void cell(int cellNum, Cell cell); |
||||
} |
@ -1,40 +0,0 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
import org.apache.poi.ss.usermodel.CellStyle; |
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnore; |
||||
|
||||
/** |
||||
* Excel基础模型 |
||||
* |
||||
* @author jipengfei |
||||
* @deprecated Now you don't need to extend any classes |
||||
*/ |
||||
@Deprecated |
||||
public class BaseRowModel { |
||||
|
||||
/** |
||||
* 每列样式 |
||||
*/ |
||||
@ExcelIgnore |
||||
private Map<Integer, CellStyle> cellStyleMap = new HashMap<Integer, CellStyle>(); |
||||
|
||||
public void addStyle(Integer row, CellStyle cellStyle) { |
||||
cellStyleMap.put(row, cellStyle); |
||||
} |
||||
|
||||
public CellStyle getStyle(Integer row) { |
||||
return cellStyleMap.get(row); |
||||
} |
||||
|
||||
public Map<Integer, CellStyle> getCellStyleMap() { |
||||
return cellStyleMap; |
||||
} |
||||
|
||||
public void setCellStyleMap(Map<Integer, CellStyle> cellStyleMap) { |
||||
this.cellStyleMap = cellStyleMap; |
||||
} |
||||
} |
@ -1,286 +0,0 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum; |
||||
import com.alibaba.excel.util.StringUtils; |
||||
|
||||
/** |
||||
* Excel internal cell data. |
||||
* |
||||
* <p> |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public class CellData<T> extends AbstractCell { |
||||
private CellDataTypeEnum type; |
||||
/** |
||||
* {@link CellDataTypeEnum#NUMBER} |
||||
*/ |
||||
private BigDecimal numberValue; |
||||
/** |
||||
* {@link CellDataTypeEnum#STRING} and{@link CellDataTypeEnum#ERROR} |
||||
*/ |
||||
private String stringValue; |
||||
/** |
||||
* {@link CellDataTypeEnum#BOOLEAN} |
||||
*/ |
||||
private Boolean booleanValue; |
||||
private Boolean formula; |
||||
private String formulaValue; |
||||
private byte[] imageValue; |
||||
/** |
||||
* The number formatting.Currently only supported when reading |
||||
*/ |
||||
private Integer dataFormat; |
||||
/** |
||||
* The string of number formatting.Currently only supported when reading |
||||
*/ |
||||
private String dataFormatString; |
||||
/** |
||||
* The resulting converted data. |
||||
*/ |
||||
private T data; |
||||
|
||||
public CellData(CellData<T> other) { |
||||
this.type = other.type; |
||||
this.numberValue = other.numberValue; |
||||
this.stringValue = other.stringValue; |
||||
this.booleanValue = other.booleanValue; |
||||
this.formula = other.formula; |
||||
this.formulaValue = other.formulaValue; |
||||
this.imageValue = other.imageValue; |
||||
this.dataFormat = other.dataFormat; |
||||
this.dataFormatString = other.dataFormatString; |
||||
this.data = other.data; |
||||
} |
||||
|
||||
public CellData() {} |
||||
|
||||
public CellData(T data) { |
||||
this.data = data; |
||||
} |
||||
|
||||
public CellData(T data, String formulaValue) { |
||||
this.data = data; |
||||
this.formula = Boolean.TRUE; |
||||
this.formulaValue = formulaValue; |
||||
} |
||||
|
||||
public CellData(String stringValue) { |
||||
this(CellDataTypeEnum.STRING, stringValue); |
||||
} |
||||
|
||||
public CellData(CellDataTypeEnum type, String stringValue) { |
||||
if (type != CellDataTypeEnum.STRING && type != CellDataTypeEnum.ERROR) { |
||||
throw new IllegalArgumentException("Only support CellDataTypeEnum.STRING and CellDataTypeEnum.ERROR"); |
||||
} |
||||
if (stringValue == null) { |
||||
throw new IllegalArgumentException("StringValue can not be null"); |
||||
} |
||||
this.type = type; |
||||
this.stringValue = stringValue; |
||||
this.formula = Boolean.FALSE; |
||||
} |
||||
|
||||
public CellData(BigDecimal numberValue) { |
||||
if (numberValue == null) { |
||||
throw new IllegalArgumentException("DoubleValue can not be null"); |
||||
} |
||||
this.type = CellDataTypeEnum.NUMBER; |
||||
this.numberValue = numberValue; |
||||
this.formula = Boolean.FALSE; |
||||
} |
||||
|
||||
public CellData(byte[] imageValue) { |
||||
if (imageValue == null) { |
||||
throw new IllegalArgumentException("ImageValue can not be null"); |
||||
} |
||||
this.type = CellDataTypeEnum.IMAGE; |
||||
this.imageValue = imageValue; |
||||
this.formula = Boolean.FALSE; |
||||
} |
||||
|
||||
public CellData(Boolean booleanValue) { |
||||
if (booleanValue == null) { |
||||
throw new IllegalArgumentException("BooleanValue can not be null"); |
||||
} |
||||
this.type = CellDataTypeEnum.BOOLEAN; |
||||
this.booleanValue = booleanValue; |
||||
this.formula = Boolean.FALSE; |
||||
} |
||||
|
||||
public CellData(CellDataTypeEnum type) { |
||||
if (type == null) { |
||||
throw new IllegalArgumentException("Type can not be null"); |
||||
} |
||||
this.type = type; |
||||
this.formula = Boolean.FALSE; |
||||
} |
||||
|
||||
public CellDataTypeEnum getType() { |
||||
return type; |
||||
} |
||||
|
||||
public void setType(CellDataTypeEnum type) { |
||||
this.type = type; |
||||
} |
||||
|
||||
public BigDecimal getNumberValue() { |
||||
return numberValue; |
||||
} |
||||
|
||||
public void setNumberValue(BigDecimal numberValue) { |
||||
this.numberValue = numberValue; |
||||
} |
||||
|
||||
public String getStringValue() { |
||||
return stringValue; |
||||
} |
||||
|
||||
public void setStringValue(String stringValue) { |
||||
this.stringValue = stringValue; |
||||
} |
||||
|
||||
public Boolean getBooleanValue() { |
||||
return booleanValue; |
||||
} |
||||
|
||||
public void setBooleanValue(Boolean booleanValue) { |
||||
this.booleanValue = booleanValue; |
||||
} |
||||
|
||||
public Boolean getFormula() { |
||||
return formula; |
||||
} |
||||
|
||||
public void setFormula(Boolean formula) { |
||||
this.formula = formula; |
||||
} |
||||
|
||||
public String getFormulaValue() { |
||||
return formulaValue; |
||||
} |
||||
|
||||
public void setFormulaValue(String formulaValue) { |
||||
this.formulaValue = formulaValue; |
||||
} |
||||
|
||||
public byte[] getImageValue() { |
||||
return imageValue; |
||||
} |
||||
|
||||
public void setImageValue(byte[] imageValue) { |
||||
this.imageValue = imageValue; |
||||
} |
||||
|
||||
public Integer getDataFormat() { |
||||
return dataFormat; |
||||
} |
||||
|
||||
public void setDataFormat(Integer dataFormat) { |
||||
this.dataFormat = dataFormat; |
||||
} |
||||
|
||||
public String getDataFormatString() { |
||||
return dataFormatString; |
||||
} |
||||
|
||||
public void setDataFormatString(String dataFormatString) { |
||||
this.dataFormatString = dataFormatString; |
||||
} |
||||
|
||||
public T getData() { |
||||
return data; |
||||
} |
||||
|
||||
public void setData(T data) { |
||||
this.data = data; |
||||
} |
||||
|
||||
/** |
||||
* Ensure that the object does not appear null |
||||
*/ |
||||
public void checkEmpty() { |
||||
if (type == null) { |
||||
type = CellDataTypeEnum.EMPTY; |
||||
} |
||||
switch (type) { |
||||
case STRING: |
||||
case ERROR: |
||||
if (StringUtils.isEmpty(stringValue)) { |
||||
type = CellDataTypeEnum.EMPTY; |
||||
} |
||||
return; |
||||
case NUMBER: |
||||
if (numberValue == null) { |
||||
type = CellDataTypeEnum.EMPTY; |
||||
} |
||||
return; |
||||
case BOOLEAN: |
||||
if (booleanValue == null) { |
||||
type = CellDataTypeEnum.EMPTY; |
||||
} |
||||
return; |
||||
default: |
||||
} |
||||
} |
||||
|
||||
public static CellData newEmptyInstance() { |
||||
return newEmptyInstance(null, null); |
||||
} |
||||
|
||||
public static CellData newEmptyInstance(Integer rowIndex, Integer columnIndex) { |
||||
CellData cellData = new CellData(CellDataTypeEnum.EMPTY); |
||||
cellData.setRowIndex(rowIndex); |
||||
cellData.setColumnIndex(columnIndex); |
||||
return cellData; |
||||
} |
||||
|
||||
public static CellData newInstance(Boolean booleanValue) { |
||||
return newInstance(booleanValue, null, null); |
||||
} |
||||
|
||||
public static CellData newInstance(Boolean booleanValue, Integer rowIndex, Integer columnIndex) { |
||||
CellData cellData = new CellData(booleanValue); |
||||
cellData.setRowIndex(rowIndex); |
||||
cellData.setColumnIndex(columnIndex); |
||||
return cellData; |
||||
} |
||||
|
||||
public static CellData newInstance(String stringValue, Integer rowIndex, Integer columnIndex) { |
||||
CellData cellData = new CellData(stringValue); |
||||
cellData.setRowIndex(rowIndex); |
||||
cellData.setColumnIndex(columnIndex); |
||||
return cellData; |
||||
} |
||||
|
||||
public static CellData newInstance(BigDecimal numberValue, Integer rowIndex, Integer columnIndex) { |
||||
CellData cellData = new CellData(numberValue); |
||||
cellData.setRowIndex(rowIndex); |
||||
cellData.setColumnIndex(columnIndex); |
||||
return cellData; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
if (type == null) { |
||||
return StringUtils.EMPTY; |
||||
} |
||||
switch (type) { |
||||
case NUMBER: |
||||
return numberValue.toString(); |
||||
case BOOLEAN: |
||||
return booleanValue.toString(); |
||||
case DIRECT_STRING: |
||||
case STRING: |
||||
case ERROR: |
||||
return stringValue; |
||||
case IMAGE: |
||||
return "image[" + imageValue.length + "]"; |
||||
default: |
||||
return StringUtils.EMPTY; |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,9 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
/** |
||||
* Null object. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public class NullObject { |
||||
} |
@ -1,162 +0,0 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* |
||||
* @author jipengfei |
||||
* @deprecated pleas use {@link com.alibaba.excel.write.metadata.WriteSheet} or |
||||
* {@link com.alibaba.excel.read.metadata.ReadSheet} |
||||
*/ |
||||
@Deprecated |
||||
public class Sheet { |
||||
|
||||
/** |
||||
*/ |
||||
private int headLineMun; |
||||
|
||||
/** |
||||
* Starting from 1 |
||||
*/ |
||||
private int sheetNo; |
||||
|
||||
/** |
||||
*/ |
||||
private String sheetName; |
||||
|
||||
/** |
||||
*/ |
||||
private Class<? extends BaseRowModel> clazz; |
||||
|
||||
/** |
||||
*/ |
||||
private List<List<String>> head; |
||||
|
||||
/** |
||||
* |
||||
*/ |
||||
private TableStyle tableStyle; |
||||
|
||||
/** |
||||
* column with |
||||
*/ |
||||
private Map<Integer, Integer> columnWidthMap = new HashMap<Integer, Integer>(); |
||||
|
||||
/** |
||||
* |
||||
*/ |
||||
private Boolean autoWidth = Boolean.FALSE; |
||||
|
||||
/** |
||||
* |
||||
*/ |
||||
private int startRow = 0; |
||||
|
||||
public Sheet(int sheetNo) { |
||||
this.sheetNo = sheetNo; |
||||
} |
||||
|
||||
public Sheet(int sheetNo, int headLineMun) { |
||||
this.sheetNo = sheetNo; |
||||
this.headLineMun = headLineMun; |
||||
} |
||||
|
||||
public Sheet(int sheetNo, int headLineMun, Class<? extends BaseRowModel> clazz) { |
||||
this.sheetNo = sheetNo; |
||||
this.headLineMun = headLineMun; |
||||
this.clazz = clazz; |
||||
} |
||||
|
||||
public Sheet(int sheetNo, int headLineMun, Class<? extends BaseRowModel> clazz, String sheetName, |
||||
List<List<String>> head) { |
||||
this.sheetNo = sheetNo; |
||||
this.clazz = clazz; |
||||
this.headLineMun = headLineMun; |
||||
this.sheetName = sheetName; |
||||
this.head = head; |
||||
} |
||||
|
||||
public List<List<String>> getHead() { |
||||
return head; |
||||
} |
||||
|
||||
public void setHead(List<List<String>> head) { |
||||
this.head = head; |
||||
} |
||||
|
||||
public Class<? extends BaseRowModel> getClazz() { |
||||
return clazz; |
||||
} |
||||
|
||||
public void setClazz(Class<? extends BaseRowModel> clazz) { |
||||
this.clazz = clazz; |
||||
if (headLineMun == 0) { |
||||
this.headLineMun = 1; |
||||
} |
||||
} |
||||
|
||||
public int getHeadLineMun() { |
||||
return headLineMun; |
||||
} |
||||
|
||||
public void setHeadLineMun(int headLineMun) { |
||||
this.headLineMun = headLineMun; |
||||
} |
||||
|
||||
public int getSheetNo() { |
||||
return sheetNo; |
||||
} |
||||
|
||||
public void setSheetNo(int sheetNo) { |
||||
this.sheetNo = sheetNo; |
||||
} |
||||
|
||||
public String getSheetName() { |
||||
return sheetName; |
||||
} |
||||
|
||||
public void setSheetName(String sheetName) { |
||||
this.sheetName = sheetName; |
||||
} |
||||
|
||||
public TableStyle getTableStyle() { |
||||
return tableStyle; |
||||
} |
||||
|
||||
public void setTableStyle(TableStyle tableStyle) { |
||||
this.tableStyle = tableStyle; |
||||
} |
||||
|
||||
public Map<Integer, Integer> getColumnWidthMap() { |
||||
return columnWidthMap; |
||||
} |
||||
|
||||
public void setColumnWidthMap(Map<Integer, Integer> columnWidthMap) { |
||||
this.columnWidthMap = columnWidthMap; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return "Sheet{" + "headLineMun=" + headLineMun + ", sheetNo=" + sheetNo + ", sheetName='" + sheetName + '\'' |
||||
+ ", clazz=" + clazz + ", head=" + head + ", tableStyle=" + tableStyle + ", columnWidthMap=" |
||||
+ columnWidthMap + '}'; |
||||
} |
||||
|
||||
public Boolean getAutoWidth() { |
||||
return autoWidth; |
||||
} |
||||
|
||||
public void setAutoWidth(Boolean autoWidth) { |
||||
this.autoWidth = autoWidth; |
||||
} |
||||
|
||||
public int getStartRow() { |
||||
return startRow; |
||||
} |
||||
|
||||
public void setStartRow(int startRow) { |
||||
this.startRow = startRow; |
||||
} |
||||
} |
@ -1,62 +0,0 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author jipengfei |
||||
* @deprecated please use {@link com.alibaba.excel.write.metadata.WriteTable} |
||||
*/ |
||||
@Deprecated |
||||
public class Table { |
||||
/** |
||||
*/ |
||||
private Class<? extends BaseRowModel> clazz; |
||||
|
||||
/** |
||||
*/ |
||||
private List<List<String>> head; |
||||
|
||||
/** |
||||
*/ |
||||
private int tableNo; |
||||
|
||||
/** |
||||
*/ |
||||
private TableStyle tableStyle; |
||||
|
||||
public Table(Integer tableNo) { |
||||
this.tableNo = tableNo; |
||||
} |
||||
|
||||
public TableStyle getTableStyle() { |
||||
return tableStyle; |
||||
} |
||||
|
||||
public void setTableStyle(TableStyle tableStyle) { |
||||
this.tableStyle = tableStyle; |
||||
} |
||||
|
||||
public Class<? extends BaseRowModel> getClazz() { |
||||
return clazz; |
||||
} |
||||
|
||||
public void setClazz(Class<? extends BaseRowModel> clazz) { |
||||
this.clazz = clazz; |
||||
} |
||||
|
||||
public List<List<String>> getHead() { |
||||
return head; |
||||
} |
||||
|
||||
public void setHead(List<List<String>> head) { |
||||
this.head = head; |
||||
} |
||||
|
||||
public int getTableNo() { |
||||
return tableNo; |
||||
} |
||||
|
||||
public void setTableNo(int tableNo) { |
||||
this.tableNo = tableNo; |
||||
} |
||||
} |
@ -1,65 +0,0 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
import org.apache.poi.ss.usermodel.IndexedColors; |
||||
|
||||
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; |
||||
|
||||
/** |
||||
* @author jipengfei |
||||
* @deprecated please use {@link HorizontalCellStyleStrategy} |
||||
*/ |
||||
@Deprecated |
||||
public class TableStyle { |
||||
|
||||
/** |
||||
* 表头背景颜色 |
||||
*/ |
||||
private IndexedColors tableHeadBackGroundColor; |
||||
|
||||
/** |
||||
* 表头字体样式 |
||||
*/ |
||||
private Font tableHeadFont; |
||||
|
||||
/** |
||||
* 表格内容字体样式 |
||||
*/ |
||||
private Font tableContentFont; |
||||
|
||||
/** |
||||
* 表格内容背景颜色 |
||||
*/ |
||||
private IndexedColors tableContentBackGroundColor; |
||||
|
||||
public IndexedColors getTableHeadBackGroundColor() { |
||||
return tableHeadBackGroundColor; |
||||
} |
||||
|
||||
public void setTableHeadBackGroundColor(IndexedColors tableHeadBackGroundColor) { |
||||
this.tableHeadBackGroundColor = tableHeadBackGroundColor; |
||||
} |
||||
|
||||
public Font getTableHeadFont() { |
||||
return tableHeadFont; |
||||
} |
||||
|
||||
public void setTableHeadFont(Font tableHeadFont) { |
||||
this.tableHeadFont = tableHeadFont; |
||||
} |
||||
|
||||
public Font getTableContentFont() { |
||||
return tableContentFont; |
||||
} |
||||
|
||||
public void setTableContentFont(Font tableContentFont) { |
||||
this.tableContentFont = tableContentFont; |
||||
} |
||||
|
||||
public IndexedColors getTableContentBackGroundColor() { |
||||
return tableContentBackGroundColor; |
||||
} |
||||
|
||||
public void setTableContentBackGroundColor(IndexedColors tableContentBackGroundColor) { |
||||
this.tableContentBackGroundColor = tableContentBackGroundColor; |
||||
} |
||||
} |
@ -0,0 +1,354 @@
|
||||
package com.alibaba.excel.metadata.csv; |
||||
|
||||
import java.math.BigDecimal; |
||||
import java.time.LocalDateTime; |
||||
import java.time.ZoneId; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
|
||||
import com.alibaba.excel.enums.NumericCellTypeEnum; |
||||
import com.alibaba.excel.metadata.data.FormulaData; |
||||
|
||||
import lombok.AccessLevel; |
||||
import lombok.Data; |
||||
import lombok.Getter; |
||||
import lombok.Setter; |
||||
import org.apache.poi.ss.SpreadsheetVersion; |
||||
import org.apache.poi.ss.usermodel.CellBase; |
||||
import org.apache.poi.ss.usermodel.CellStyle; |
||||
import org.apache.poi.ss.usermodel.CellType; |
||||
import org.apache.poi.ss.usermodel.Comment; |
||||
import org.apache.poi.ss.usermodel.Hyperlink; |
||||
import org.apache.poi.ss.usermodel.RichTextString; |
||||
import org.apache.poi.ss.usermodel.Row; |
||||
import org.apache.poi.ss.usermodel.Sheet; |
||||
import org.apache.poi.ss.util.CellRangeAddress; |
||||
|
||||
/** |
||||
* csv cell |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
@Data |
||||
public class CsvCell extends CellBase { |
||||
|
||||
/** |
||||
* column index |
||||
*/ |
||||
@Getter(value = AccessLevel.NONE) |
||||
@Setter(value = AccessLevel.NONE) |
||||
private Integer columnIndex; |
||||
|
||||
/** |
||||
* cell type |
||||
*/ |
||||
@Getter(value = AccessLevel.NONE) |
||||
@Setter(value = AccessLevel.NONE) |
||||
private CellType cellType; |
||||
|
||||
/** |
||||
* numeric cell type |
||||
*/ |
||||
private NumericCellTypeEnum numericCellType; |
||||
|
||||
/** |
||||
* workbook |
||||
*/ |
||||
private final CsvWorkbook csvWorkbook; |
||||
|
||||
/** |
||||
* sheet |
||||
*/ |
||||
private final CsvSheet csvSheet; |
||||
|
||||
/** |
||||
* row |
||||
*/ |
||||
private final CsvRow csvRow; |
||||
|
||||
/** |
||||
* {@link CellType#NUMERIC} |
||||
*/ |
||||
private BigDecimal numberValue; |
||||
/** |
||||
* {@link CellType#STRING} and {@link CellType#ERROR} {@link CellType#FORMULA} |
||||
*/ |
||||
private String stringValue; |
||||
/** |
||||
* {@link CellType#BOOLEAN} |
||||
*/ |
||||
private Boolean booleanValue; |
||||
|
||||
/** |
||||
* {@link CellType#NUMERIC} |
||||
*/ |
||||
private LocalDateTime dateValue; |
||||
|
||||
/** |
||||
* formula |
||||
*/ |
||||
private FormulaData formulaData; |
||||
|
||||
/** |
||||
* rich text string |
||||
*/ |
||||
private RichTextString richTextString; |
||||
|
||||
/** |
||||
* style |
||||
*/ |
||||
private CellStyle cellStyle; |
||||
|
||||
public CsvCell(CsvWorkbook csvWorkbook, CsvSheet csvSheet, CsvRow csvRow, Integer columnIndex, CellType cellType) { |
||||
this.csvWorkbook = csvWorkbook; |
||||
this.csvSheet = csvSheet; |
||||
this.csvRow = csvRow; |
||||
this.columnIndex = columnIndex; |
||||
this.cellType = cellType; |
||||
if (this.cellType == null) { |
||||
this.cellType = CellType._NONE; |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellTypeImpl(CellType cellType) { |
||||
this.cellType = cellType; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellFormulaImpl(String formula) { |
||||
FormulaData formulaData = new FormulaData(); |
||||
formulaData.setFormulaValue(formula); |
||||
this.formulaData = formulaData; |
||||
this.cellType = CellType.FORMULA; |
||||
} |
||||
|
||||
@Override |
||||
protected void removeFormulaImpl() { |
||||
this.formulaData = null; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellValueImpl(double value) { |
||||
numberValue = BigDecimal.valueOf(value); |
||||
this.cellType = CellType.NUMERIC; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellValueImpl(Date value) { |
||||
if (value == null) { |
||||
return; |
||||
} |
||||
this.dateValue = LocalDateTime.ofInstant(value.toInstant(), ZoneId.systemDefault()); |
||||
this.cellType = CellType.NUMERIC; |
||||
this.numericCellType = NumericCellTypeEnum.DATE; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellValueImpl(LocalDateTime value) { |
||||
this.dateValue = value; |
||||
this.cellType = CellType.NUMERIC; |
||||
this.numericCellType = NumericCellTypeEnum.DATE; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellValueImpl(Calendar value) { |
||||
if (value == null) { |
||||
return; |
||||
} |
||||
this.dateValue = LocalDateTime.ofInstant(value.toInstant(), ZoneId.systemDefault()); |
||||
this.cellType = CellType.NUMERIC; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellValueImpl(String value) { |
||||
this.stringValue = value; |
||||
this.cellType = CellType.STRING; |
||||
} |
||||
|
||||
@Override |
||||
protected void setCellValueImpl(RichTextString value) { |
||||
richTextString = value; |
||||
this.cellType = CellType.STRING; |
||||
} |
||||
|
||||
@Override |
||||
public void setCellValue(String value) { |
||||
if (value == null) { |
||||
setBlank(); |
||||
return; |
||||
} |
||||
setCellValueImpl(value); |
||||
} |
||||
|
||||
@Override |
||||
public void setCellValue(RichTextString value) { |
||||
if (value == null || value.getString() == null) { |
||||
setBlank(); |
||||
return; |
||||
} |
||||
setCellValueImpl(value); |
||||
} |
||||
|
||||
@Override |
||||
protected SpreadsheetVersion getSpreadsheetVersion() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public int getColumnIndex() { |
||||
return columnIndex; |
||||
} |
||||
|
||||
@Override |
||||
public int getRowIndex() { |
||||
return csvRow.getRowNum(); |
||||
} |
||||
|
||||
@Override |
||||
public Sheet getSheet() { |
||||
return csvRow.getSheet(); |
||||
} |
||||
|
||||
@Override |
||||
public Row getRow() { |
||||
return csvRow; |
||||
} |
||||
|
||||
@Override |
||||
public CellType getCellType() { |
||||
return cellType; |
||||
} |
||||
|
||||
@Override |
||||
public CellType getCachedFormulaResultType() { |
||||
return getCellType(); |
||||
} |
||||
|
||||
@Override |
||||
public CellType getCachedFormulaResultTypeEnum() { |
||||
return getCellType(); |
||||
} |
||||
|
||||
@Override |
||||
public String getCellFormula() { |
||||
if (formulaData == null) { |
||||
return null; |
||||
} |
||||
return formulaData.getFormulaValue(); |
||||
} |
||||
|
||||
@Override |
||||
public double getNumericCellValue() { |
||||
if (numberValue == null) { |
||||
return 0; |
||||
} |
||||
return numberValue.doubleValue(); |
||||
} |
||||
|
||||
@Override |
||||
public Date getDateCellValue() { |
||||
if (dateValue == null) { |
||||
return null; |
||||
} |
||||
return Date.from(dateValue.atZone(ZoneId.systemDefault()).toInstant()); |
||||
} |
||||
|
||||
@Override |
||||
public LocalDateTime getLocalDateTimeCellValue() { |
||||
return dateValue; |
||||
} |
||||
|
||||
@Override |
||||
public RichTextString getRichStringCellValue() { |
||||
return richTextString; |
||||
} |
||||
|
||||
@Override |
||||
public String getStringCellValue() { |
||||
return stringValue; |
||||
} |
||||
|
||||
@Override |
||||
public void setCellValue(boolean value) { |
||||
this.booleanValue = value; |
||||
this.cellType = CellType.BOOLEAN; |
||||
} |
||||
|
||||
@Override |
||||
public void setCellErrorValue(byte value) { |
||||
this.numberValue = BigDecimal.valueOf(value); |
||||
this.cellType = CellType.ERROR; |
||||
} |
||||
|
||||
@Override |
||||
public boolean getBooleanCellValue() { |
||||
if (booleanValue == null) { |
||||
return false; |
||||
} |
||||
return booleanValue; |
||||
} |
||||
|
||||
@Override |
||||
public byte getErrorCellValue() { |
||||
if (numberValue == null) { |
||||
return 0; |
||||
} |
||||
return numberValue.byteValue(); |
||||
} |
||||
|
||||
@Override |
||||
public void setCellStyle(CellStyle style) { |
||||
this.cellStyle = style; |
||||
} |
||||
|
||||
@Override |
||||
public CellStyle getCellStyle() { |
||||
return cellStyle; |
||||
} |
||||
|
||||
@Override |
||||
public void setAsActiveCell() { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void setCellComment(Comment comment) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public Comment getCellComment() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void removeCellComment() { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public Hyperlink getHyperlink() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setHyperlink(Hyperlink link) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void removeHyperlink() { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public CellRangeAddress getArrayFormulaRange() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isPartOfArrayFormulaGroup() { |
||||
return false; |
||||
} |
||||
} |
@ -0,0 +1,333 @@
|
||||
package com.alibaba.excel.metadata.csv; |
||||
|
||||
import com.alibaba.excel.metadata.data.DataFormatData; |
||||
|
||||
import lombok.Data; |
||||
import org.apache.poi.ss.usermodel.BorderStyle; |
||||
import org.apache.poi.ss.usermodel.CellStyle; |
||||
import org.apache.poi.ss.usermodel.Color; |
||||
import org.apache.poi.ss.usermodel.FillPatternType; |
||||
import org.apache.poi.ss.usermodel.Font; |
||||
import org.apache.poi.ss.usermodel.HorizontalAlignment; |
||||
import org.apache.poi.ss.usermodel.VerticalAlignment; |
||||
|
||||
/** |
||||
* csv cell style |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
@Data |
||||
public class CsvCellStyle implements CellStyle { |
||||
|
||||
/** |
||||
* data format |
||||
*/ |
||||
private DataFormatData dataFormatData; |
||||
|
||||
/** |
||||
* index |
||||
*/ |
||||
private Short index; |
||||
|
||||
public CsvCellStyle(Short index) { |
||||
this.index = index; |
||||
} |
||||
|
||||
@Override |
||||
public short getIndex() { |
||||
return index; |
||||
} |
||||
|
||||
@Override |
||||
public void setDataFormat(short fmt) { |
||||
initDataFormatData(); |
||||
dataFormatData.setIndex(fmt); |
||||
} |
||||
|
||||
private void initDataFormatData() { |
||||
if (dataFormatData == null) { |
||||
dataFormatData = new DataFormatData(); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public short getDataFormat() { |
||||
if (dataFormatData == null) { |
||||
return 0; |
||||
} |
||||
return dataFormatData.getIndex(); |
||||
} |
||||
|
||||
@Override |
||||
public String getDataFormatString() { |
||||
if (dataFormatData == null) { |
||||
return null; |
||||
} |
||||
return dataFormatData.getFormat(); |
||||
} |
||||
|
||||
@Override |
||||
public void setFont(Font font) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getFontIndex() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public int getFontIndexAsInt() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setHidden(boolean hidden) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public boolean getHidden() { |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public void setLocked(boolean locked) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public boolean getLocked() { |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public void setQuotePrefixed(boolean quotePrefix) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public boolean getQuotePrefixed() { |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public void setAlignment(HorizontalAlignment align) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public HorizontalAlignment getAlignment() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public HorizontalAlignment getAlignmentEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setWrapText(boolean wrapped) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public boolean getWrapText() { |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public void setVerticalAlignment(VerticalAlignment align) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public VerticalAlignment getVerticalAlignment() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public VerticalAlignment getVerticalAlignmentEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setRotation(short rotation) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getRotation() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setIndention(short indent) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getIndention() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setBorderLeft(BorderStyle border) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderLeft() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderLeftEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setBorderRight(BorderStyle border) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderRight() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderRightEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setBorderTop(BorderStyle border) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderTop() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderTopEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setBorderBottom(BorderStyle border) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderBottom() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public BorderStyle getBorderBottomEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setLeftBorderColor(short color) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getLeftBorderColor() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setRightBorderColor(short color) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getRightBorderColor() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setTopBorderColor(short color) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getTopBorderColor() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setBottomBorderColor(short color) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getBottomBorderColor() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void setFillPattern(FillPatternType fp) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public FillPatternType getFillPattern() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public FillPatternType getFillPatternEnum() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setFillBackgroundColor(short bg) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getFillBackgroundColor() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public Color getFillBackgroundColorColor() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void setFillForegroundColor(short bg) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public short getFillForegroundColor() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public Color getFillForegroundColorColor() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void cloneStyleFrom(CellStyle source) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void setShrinkToFit(boolean shrinkToFit) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public boolean getShrinkToFit() { |
||||
return false; |
||||
} |
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue