forked from fanruan/easyexcel
Jiaju Zhuang
3 years ago
16 changed files with 1919 additions and 102 deletions
@ -0,0 +1,225 @@ |
|||||||
|
package com.alibaba.excel.csv; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.util.Calendar; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
import org.apache.poi.ss.formula.FormulaParseException; |
||||||
|
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.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.CellAddress; |
||||||
|
import org.apache.poi.ss.util.CellRangeAddress; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class CsvCell implements Cell { |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getColumnIndex() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getRowIndex() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet getSheet() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Row getRow() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellType(CellType cellType) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setBlank() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellType getCellType() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellType getCellTypeEnum() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellType getCachedFormulaResultType() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellType getCachedFormulaResultTypeEnum() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(double value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(Date value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(LocalDateTime value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(Calendar value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(RichTextString value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(String value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellFormula(String formula) throws FormulaParseException, IllegalStateException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeFormula() throws IllegalStateException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getCellFormula() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public double getNumericCellValue() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Date getDateCellValue() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public LocalDateTime getLocalDateTimeCellValue() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public RichTextString getRichStringCellValue() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getStringCellValue() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellValue(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellErrorValue(byte value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getBooleanCellValue() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public byte getErrorCellValue() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCellStyle(CellStyle style) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellStyle getCellStyle() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setAsActiveCell() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellAddress getAddress() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@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,301 @@ |
|||||||
|
package com.alibaba.excel.csv; |
||||||
|
|
||||||
|
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; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class CsvCellStyle implements CellStyle { |
||||||
|
@Override |
||||||
|
public short getIndex() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDataFormat(short fmt) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getDataFormat() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getDataFormatString() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
package com.alibaba.excel.csv; |
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.DataFormat; |
||||||
|
|
||||||
|
public class CsvDataFormat implements DataFormat { |
||||||
|
@Override |
||||||
|
public short getFormat(String format) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getFormat(short index) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,143 @@ |
|||||||
|
package com.alibaba.excel.csv; |
||||||
|
|
||||||
|
import java.util.Iterator; |
||||||
|
|
||||||
|
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; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class CsvRow implements Row { |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public Cell createCell(int column) { |
||||||
|
return new CsvCell(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Cell createCell(int column, CellType type) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeCell(Cell cell) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRowNum(int rowNum) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getRowNum() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Cell getCell(int cellnum) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Cell getCell(int cellnum, MissingCellPolicy policy) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getFirstCellNum() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getLastCellNum() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getPhysicalNumberOfCells() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@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 null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRowStyle(CellStyle style) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterator<Cell> cellIterator() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet getSheet() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@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 null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,676 @@ |
|||||||
|
package com.alibaba.excel.csv; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.OutputStream; |
||||||
|
import java.io.OutputStreamWriter; |
||||||
|
import java.nio.charset.Charset; |
||||||
|
import java.util.Collection; |
||||||
|
import java.util.Iterator; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import com.alibaba.excel.util.ListUtils; |
||||||
|
|
||||||
|
import org.apache.commons.csv.CSVFormat; |
||||||
|
import org.apache.commons.csv.CSVPrinter; |
||||||
|
import org.apache.poi.ss.usermodel.AutoFilter; |
||||||
|
import org.apache.poi.ss.usermodel.Cell; |
||||||
|
import org.apache.poi.ss.usermodel.CellRange; |
||||||
|
import org.apache.poi.ss.usermodel.CellStyle; |
||||||
|
import org.apache.poi.ss.usermodel.Comment; |
||||||
|
import org.apache.poi.ss.usermodel.DataValidation; |
||||||
|
import org.apache.poi.ss.usermodel.DataValidationHelper; |
||||||
|
import org.apache.poi.ss.usermodel.Drawing; |
||||||
|
import org.apache.poi.ss.usermodel.Footer; |
||||||
|
import org.apache.poi.ss.usermodel.Header; |
||||||
|
import org.apache.poi.ss.usermodel.Hyperlink; |
||||||
|
import org.apache.poi.ss.usermodel.PrintSetup; |
||||||
|
import org.apache.poi.ss.usermodel.Row; |
||||||
|
import org.apache.poi.ss.usermodel.Sheet; |
||||||
|
import org.apache.poi.ss.usermodel.SheetConditionalFormatting; |
||||||
|
import org.apache.poi.ss.usermodel.Workbook; |
||||||
|
import org.apache.poi.ss.util.CellAddress; |
||||||
|
import org.apache.poi.ss.util.CellRangeAddress; |
||||||
|
import org.apache.poi.ss.util.PaneInformation; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class CsvSheet implements Sheet { |
||||||
|
|
||||||
|
public static int rowCacheCount = 500; |
||||||
|
public static Charset defaultCharset = Charset.defaultCharset(); |
||||||
|
|
||||||
|
public CSVPrinter csvPrinter; |
||||||
|
|
||||||
|
private int lastRowNum = -1; |
||||||
|
|
||||||
|
private List<CsvRow> rowCache = ListUtils.newArrayListWithExpectedSize(rowCacheCount); |
||||||
|
|
||||||
|
public CsvSheet(File file) throws IOException { |
||||||
|
csvPrinter = CSVFormat.DEFAULT.print(file, defaultCharset); |
||||||
|
} |
||||||
|
|
||||||
|
public CsvSheet(OutputStream outputStream) throws IOException { |
||||||
|
csvPrinter = CSVFormat.DEFAULT.print(new OutputStreamWriter(outputStream)); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Row createRow(int rownum) { |
||||||
|
lastRowNum++; |
||||||
|
assert rownum == lastRowNum : "csv create row must be in order."; |
||||||
|
printData(); |
||||||
|
CsvRow csvRow = new CsvRow(); |
||||||
|
rowCache.add(csvRow); |
||||||
|
return csvRow; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeRow(Row row) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Row getRow(int rownum) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getPhysicalNumberOfRows() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getFirstRowNum() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getLastRowNum() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setColumnHidden(int columnIndex, boolean hidden) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isColumnHidden(int columnIndex) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRightToLeft(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isRightToLeft() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setColumnWidth(int columnIndex, int width) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getColumnWidth(int columnIndex) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public float getColumnWidthInPixels(int columnIndex) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDefaultColumnWidth(int width) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getDefaultColumnWidth() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getDefaultRowHeight() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public float getDefaultRowHeightInPoints() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDefaultRowHeight(short height) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDefaultRowHeightInPoints(float height) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellStyle getColumnStyle(int column) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int addMergedRegion(CellRangeAddress region) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int addMergedRegionUnsafe(CellRangeAddress region) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void validateMergedRegions() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setVerticallyCenter(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setHorizontallyCenter(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getHorizontallyCenter() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getVerticallyCenter() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeMergedRegion(int index) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeMergedRegions(Collection<Integer> indices) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getNumMergedRegions() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellRangeAddress getMergedRegion(int index) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<CellRangeAddress> getMergedRegions() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterator<Row> rowIterator() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setForceFormulaRecalculation(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getForceFormulaRecalculation() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setAutobreaks(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDisplayGuts(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDisplayZeros(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isDisplayZeros() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setFitToPage(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRowSumsBelow(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRowSumsRight(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getAutobreaks() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getDisplayGuts() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getFitToPage() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getRowSumsBelow() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getRowSumsRight() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isPrintGridlines() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setPrintGridlines(boolean show) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isPrintRowAndColumnHeadings() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setPrintRowAndColumnHeadings(boolean show) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public PrintSetup getPrintSetup() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Header getHeader() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Footer getFooter() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setSelected(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public double getMargin(short margin) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setMargin(short margin, double size) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getProtect() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void protectSheet(String password) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getScenarioProtect() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setZoom(int scale) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getTopRow() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getLeftCol() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void showInPane(int topRow, int leftCol) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void shiftRows(int startRow, int endRow, int n) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void shiftRows(int startRow, int endRow, int n, boolean copyRowHeight, boolean resetOriginalRowHeight) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void shiftColumns(int startColumn, int endColumn, int n) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void createFreezePane(int colSplit, int rowSplit) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void createSplitPane(int xSplitPos, int ySplitPos, int leftmostColumn, int topRow, int activePane) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public PaneInformation getPaneInformation() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDisplayGridlines(boolean show) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isDisplayGridlines() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDisplayFormulas(boolean show) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isDisplayFormulas() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDisplayRowColHeadings(boolean show) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isDisplayRowColHeadings() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRowBreak(int row) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isRowBroken(int row) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeRowBreak(int row) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int[] getRowBreaks() { |
||||||
|
return new int[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int[] getColumnBreaks() { |
||||||
|
return new int[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setColumnBreak(int column) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isColumnBroken(int column) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeColumnBreak(int column) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setColumnGroupCollapsed(int columnNumber, boolean collapsed) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void groupColumn(int fromColumn, int toColumn) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void ungroupColumn(int fromColumn, int toColumn) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void groupRow(int fromRow, int toRow) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void ungroupRow(int fromRow, int toRow) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRowGroupCollapsed(int row, boolean collapse) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setDefaultColumnStyle(int column, CellStyle style) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void autoSizeColumn(int column) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void autoSizeColumn(int column, boolean useMergedCells) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Comment getCellComment(CellAddress ref) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Map<CellAddress, ? extends Comment> getCellComments() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Drawing<?> getDrawingPatriarch() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Drawing<?> createDrawingPatriarch() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Workbook getWorkbook() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getSheetName() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isSelected() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellRange<? extends Cell> setArrayFormula( |
||||||
|
String formula, CellRangeAddress range) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellRange<? extends Cell> removeArrayFormula(Cell cell) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DataValidationHelper getDataValidationHelper() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<? extends DataValidation> getDataValidations() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void addValidationData(DataValidation dataValidation) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public AutoFilter setAutoFilter(CellRangeAddress range) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public SheetConditionalFormatting getSheetConditionalFormatting() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellRangeAddress getRepeatingRows() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellRangeAddress getRepeatingColumns() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRepeatingRows(CellRangeAddress rowRangeRef) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setRepeatingColumns(CellRangeAddress columnRangeRef) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getColumnOutlineLevel(int columnIndex) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Hyperlink getHyperlink(int row, int column) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Hyperlink getHyperlink(CellAddress addr) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<? extends Hyperlink> getHyperlinkList() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellAddress getActiveCell() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setActiveCell(CellAddress address) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterator<Row> iterator() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public void printData() { |
||||||
|
if (rowCache.size() >= rowCacheCount) { |
||||||
|
flushData(); |
||||||
|
rowCache.clear(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void flushData() { |
||||||
|
try { |
||||||
|
csvPrinter.printRecord(); |
||||||
|
} catch (IOException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,358 @@ |
|||||||
|
package com.alibaba.excel.csv; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.io.OutputStream; |
||||||
|
import java.util.Iterator; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.apache.poi.ss.SpreadsheetVersion; |
||||||
|
import org.apache.poi.ss.formula.udf.UDFFinder; |
||||||
|
import org.apache.poi.ss.usermodel.CellStyle; |
||||||
|
import org.apache.poi.ss.usermodel.CreationHelper; |
||||||
|
import org.apache.poi.ss.usermodel.DataFormat; |
||||||
|
import org.apache.poi.ss.usermodel.Font; |
||||||
|
import org.apache.poi.ss.usermodel.Name; |
||||||
|
import org.apache.poi.ss.usermodel.PictureData; |
||||||
|
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy; |
||||||
|
import org.apache.poi.ss.usermodel.Sheet; |
||||||
|
import org.apache.poi.ss.usermodel.SheetVisibility; |
||||||
|
import org.apache.poi.ss.usermodel.Workbook; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CsvWorkbook implements Workbook { |
||||||
|
|
||||||
|
private CsvSheet csvSheet; |
||||||
|
|
||||||
|
public CsvWorkbook(InputStream inputStream, File file) { |
||||||
|
try { |
||||||
|
this.csvSheet = new CsvSheet(file); |
||||||
|
} catch (IOException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getActiveSheetIndex() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setActiveSheet(int sheetIndex) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getFirstVisibleTab() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setFirstVisibleTab(int sheetIndex) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setSheetOrder(String sheetname, int pos) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setSelectedTab(int index) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setSheetName(int sheet, String name) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getSheetName(int sheet) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getSheetIndex(String name) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getSheetIndex(Sheet sheet) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet createSheet() { |
||||||
|
return csvSheet; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet createSheet(String sheetname) { |
||||||
|
return csvSheet; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet cloneSheet(int sheetNum) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterator<Sheet> sheetIterator() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getNumberOfSheets() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet getSheetAt(int index) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Sheet getSheet(String name) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeSheetAt(int index) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Font createFont() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Font findFont(boolean bold, short color, short fontHeight, String name, boolean italic, boolean strikeout, |
||||||
|
short typeOffset, byte underline) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public short getNumberOfFonts() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getNumberOfFontsAsInt() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Font getFontAt(short idx) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Font getFontAt(int idx) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellStyle createCellStyle() { |
||||||
|
return new CsvCellStyle(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getNumCellStyles() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CellStyle getCellStyleAt(int idx) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void write(OutputStream stream) throws IOException { |
||||||
|
csvSheet.csvPrinter.flush(); |
||||||
|
csvSheet.csvPrinter.close(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void close() throws IOException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getNumberOfNames() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Name getName(String name) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<? extends Name> getNames(String name) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<? extends Name> getAllNames() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Name getNameAt(int nameIndex) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Name createName() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getNameIndex(String name) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeName(int index) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeName(String name) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removeName(Name name) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int linkExternalWorkbook(String name, Workbook workbook) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setPrintArea(int sheetIndex, String reference) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setPrintArea(int sheetIndex, int startColumn, int endColumn, int startRow, int endRow) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getPrintArea(int sheetIndex) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void removePrintArea(int sheetIndex) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public MissingCellPolicy getMissingCellPolicy() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setMissingCellPolicy(MissingCellPolicy missingCellPolicy) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DataFormat createDataFormat() { |
||||||
|
return new CsvDataFormat(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int addPicture(byte[] pictureData, int format) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<? extends PictureData> getAllPictures() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public CreationHelper getCreationHelper() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isHidden() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setHidden(boolean hiddenFlag) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isSheetHidden(int sheetIx) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isSheetVeryHidden(int sheetIx) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setSheetHidden(int sheetIx, boolean hidden) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public SheetVisibility getSheetVisibility(int sheetIx) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setSheetVisibility(int sheetIx, SheetVisibility visibility) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void addToolPack(UDFFinder toopack) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setForceFormulaRecalculation(boolean value) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean getForceFormulaRecalculation() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public SpreadsheetVersion getSpreadsheetVersion() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int addOlePackage(byte[] oleData, String label, String fileName, String command) throws IOException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Iterator<Sheet> iterator() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package com.alibaba.easyexcel.test.temp.csv; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore; |
||||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CsvData { |
||||||
|
@ExcelProperty("字符串标题") |
||||||
|
private String string; |
||||||
|
@ExcelProperty("日期标题") |
||||||
|
private Date date; |
||||||
|
@ExcelProperty("数字标题") |
||||||
|
private Double doubleData; |
||||||
|
/** |
||||||
|
* 忽略这个字段 |
||||||
|
*/ |
||||||
|
@ExcelIgnore |
||||||
|
private String ignore; |
||||||
|
} |
@ -0,0 +1,86 @@ |
|||||||
|
package com.alibaba.easyexcel.test.temp.csv; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.PrintWriter; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
||||||
|
import com.alibaba.excel.EasyExcel; |
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.commons.csv.CSVFormat; |
||||||
|
import org.apache.commons.csv.CSVPrinter; |
||||||
|
import org.apache.poi.poifs.filesystem.FileMagic; |
||||||
|
import org.junit.Ignore; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
@Ignore |
||||||
|
@Slf4j |
||||||
|
public class CsvReadTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void write() throws Exception { |
||||||
|
Appendable out = new PrintWriter(TestFileUtil.createNewFile("csvWrite.csv")); |
||||||
|
CSVPrinter printer = CSVFormat.DEFAULT.withHeader("userId", "userName") |
||||||
|
.print(out); |
||||||
|
for (int i = 0; i < 10; i++) { |
||||||
|
printer.printRecord("userId" + i, "userName" + i); |
||||||
|
} |
||||||
|
printer.flush(); |
||||||
|
printer.close(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void csvWrite() throws Exception { |
||||||
|
// 写法1
|
||||||
|
String fileName = TestFileUtil.getPath() + "simpleWrite" + System.currentTimeMillis() + ".csv"; |
||||||
|
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
|
||||||
|
// 如果这里想使用03 则 传入excelType参数即可
|
||||||
|
EasyExcel.write(fileName, CsvData.class).sheet().doWrite(data()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void writev2() throws Exception { |
||||||
|
// 写法1
|
||||||
|
String fileName = TestFileUtil.getPath() + "simpleWrite" + System.currentTimeMillis() + ".csv"; |
||||||
|
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
|
||||||
|
// 如果这里想使用03 则 传入excelType参数即可
|
||||||
|
EasyExcel.write(fileName, CsvData.class).sheet().doWrite(data()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void writeFile() throws Exception { |
||||||
|
FileInputStream fileInputStream = new FileInputStream(new File("/Users/zhuangjiaju/test/test1.csv")); |
||||||
|
FileMagic fileMagic = FileMagic.valueOf(fileInputStream); |
||||||
|
log.info("{}", fileMagic); |
||||||
|
} |
||||||
|
|
||||||
|
private List<CsvData> data() { |
||||||
|
List<CsvData> list = new ArrayList<>(); |
||||||
|
for (int i = 0; i < 10; i++) { |
||||||
|
CsvData data = new CsvData(); |
||||||
|
data.setString("字符串" + i); |
||||||
|
data.setDate(new Date()); |
||||||
|
data.setDoubleData(0.56); |
||||||
|
data.setIgnore("忽略" + i); |
||||||
|
list.add(data); |
||||||
|
} |
||||||
|
return list; |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void read() { |
||||||
|
//
|
||||||
|
//Iterable<CSVRecord> records = CSVFormat.DEFAULT.withFirstRecordAsHeader().parse(in);
|
||||||
|
//for (CSVRecord record : records) {
|
||||||
|
// String lastName = record.get("id");
|
||||||
|
// String firstName = record.get("name");
|
||||||
|
// System.out.println(lastName);
|
||||||
|
// System.out.println(firstName);
|
||||||
|
//}
|
||||||
|
|
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue