📄 typeutils.java
字号:
/*
* Created on 2004-3-22
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package com.zosatapo.xls.util;
import java.util.HashMap;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFCell;
import com.zosatapo.xls.core.Type;
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class TypeUtils
{
// Column to JAVA and EXCEL
private static final Map colWrappers=new HashMap();
// JAVA to Column
private static final Map java2Columns=new HashMap();
// Excel to Column
private static final Map xls2Columns=new HashMap();
private static synchronized void populateWrappers()
{
colWrappers.put(Type.VARCHAR.tag(),new ColumnTypeMapper(Type.VARCHAR,java.lang.String.class,HSSFCell.CELL_TYPE_STRING));
colWrappers.put(Type.INTEGER.tag(),new ColumnTypeMapper(Type.INTEGER,java.lang.String.class,HSSFCell.CELL_TYPE_NUMERIC));
colWrappers.put(Type.FLOAT.tag(),new ColumnTypeMapper(Type.FLOAT,java.lang.String.class,HSSFCell.CELL_TYPE_NUMERIC));
colWrappers.put(Type.DATE.tag(),new ColumnTypeMapper(Type.DATE,java.sql.Date.class,HSSFCell.CELL_TYPE_NUMERIC));
colWrappers.put(Type.TIME.tag(),new ColumnTypeMapper(Type.TIME,java.sql.Time.class,HSSFCell.CELL_TYPE_NUMERIC));
colWrappers.put(Type.TIMESTAMP.tag(),new ColumnTypeMapper(Type.TIMESTAMP,java.sql.Timestamp.class,HSSFCell.CELL_TYPE_NUMERIC));
//=======================================================================
java2Columns.put(java.lang.String.class,Type.VARCHAR);
java2Columns.put(Character.TYPE,Type.VARCHAR);
// java2Columns.put(Byte.TYPE,Type.INTEGER);
// java2Columns.put(TYPE,Type.INTEGER);
java2Columns.put(Integer.TYPE,Type.INTEGER);
// java2Columns.put(Long.TYPE,Type.INTEGER);
java2Columns.put(Float.TYPE,Type.FLOAT);
// java2Columns.put(Double.TYPE,Type.FLOAT);
java2Columns.put(java.sql.Date.class,Type.DATE);
java2Columns.put(java.util.Date.class,Type.DATE);
java2Columns.put(java.sql.Time.class,Type.TIME);
java2Columns.put(java.sql.Timestamp.class,Type.TIMESTAMP);
//=======================================================================
xls2Columns.put(new Integer(HSSFCell.CELL_TYPE_STRING),Type.VARCHAR);
xls2Columns.put(new Integer(HSSFCell.CELL_TYPE_BLANK),Type.VARCHAR);
xls2Columns.put(new Integer(HSSFCell.CELL_TYPE_BOOLEAN),Type.VARCHAR);
xls2Columns.put(new Integer(HSSFCell.CELL_TYPE_FORMULA),Type.VARCHAR);
xls2Columns.put(new Integer(HSSFCell.CELL_TYPE_NUMERIC),Type.FLOAT);
xls2Columns.put(java.lang.Double.TYPE,Type.FLOAT);
}
static
{
populateWrappers();
}
//------------------------------------------------------------------------
public static Class column2Java(Type columnType)
{
ColumnTypeMapper ctWrapper=(ColumnTypeMapper)colWrappers.get(columnType);
Class clazz=ctWrapper.getJavaClass();
return clazz;
}
public static int column2Xls(Type columnType)
{
ColumnTypeMapper ctWrapper=(ColumnTypeMapper)colWrappers.get(columnType.tag());
//System.err.println("ctWrapper="+ctWrapper+",columnType="+columnType);
int xlsFormat=ctWrapper.getXlsFormat();
return xlsFormat;
}
public static Type xls2Column(int format)
{
Type type=(Type)xls2Columns.get(new Integer(format));
//fix me!!!
type=(type==null)?Type.VARCHAR:type;
return type;
}
public static Type java2Column(Class clazz)
{
Type type=(Type)java2Columns.get(clazz);
//fix me!!!
type=(type==null)?Type.VARCHAR:type;
return type;
}
//--------------------------------------------------------------------------
public static class ColumnTypeMapper
{
private Type columnType;
private Class toJavaClazz;
private int toExcelFormat;
public ColumnTypeMapper(Type columnType,Class javaClazz,int excelFormat)
{
this.columnType=columnType;
this.toJavaClazz=javaClazz;
this.toExcelFormat=excelFormat;
}
public Type getColumnType()
{
return columnType;
}
public Class getJavaClass()
{
return toJavaClazz;
}
public int getXlsFormat()
{
return toExcelFormat;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -