恩,我想应该是print excel 文件的内容的时候了!在read()方法中加入一下代码,并且给read()添加一个参数string tabe  print处所有的sql语句来
for(int rowflag=0;rowflag<rownum;rowflag++)
        {
        	 //enter into row loop
             HSSFRow row = sheet.getRow(rowflag);
             int cells = row.getPhysicalNumberOfCells();
             System.out.println("the total number of cell in this row"+cells);
             System.out.println("this ROW= " + row.getRowNum());
            
             //
             String cellV[]=new String[cells];
             for(int cellflag=0;cellflag<cells;cellflag++)
             {
             	//enter into cell loop
                 
                HSSFCell  cell= row.getCell((short)cellflag);
                double    valuenum = 0;
                String    valuestr=null;
                String    type=null;
                // i got the code below from org.apache.poi.hssf.dev.hssf class
                // and modify some
                switch (cell.getCellType())
                {
                                case HSSFCell.CELL_TYPE_FORMULA :
                                    type = "FORMULA ";
                                    valuestr="null";
                                    break;
                                case HSSFCell.CELL_TYPE_NUMERIC :
                                    type = "NUMERIC";
                                     valuenum=cell.getNumericCellValue();
                                    break;
                                case HSSFCell.CELL_TYPE_STRING :
                                    type = "STRING";
                                    valuestr=cell.getStringCellValue();
                                    break;
                                default :
                                    type=null;
                 }
                 if(type!=null)
                 {
                    System.out.print("the type of this cell is==="+type);
                    if(valuestr!=null)
                    {
                      cellV[cellflag]=valuestr.trim();
                      System.out.println("the value of this cell is==="+valuestr);
                    }
                    else  
                    {
                      cellV[cellflag]=Double.toString(valuenum);
                      System.out.println("the value of this cell is==="+valuenum);
                    }
                 }
                 else
                 {
                      cellV[cellflag]="null";
                      System.out.println("erro in the file ,there is a null type cell :"+cellflag);
                 }
              }
              //here i will manipulate the 'insert' directive of database
              StringBuffer sql=new StringBuffer("insert into "+table+"  values (");
              for(int j=1;j<cells;j++)
              {
     	              sql.append("'"+cellV[j-1]+"',");
   	          }
                      sql.append("'"+cellV[cells-1]+"')");
                      System.out.println("sql  "+"="+sql.toString());
             
             
        }
恩看来excel支持的数据类型有限,它支持四种,FORMULA ,NUMERIC,STRING,date。  我们只用到了三种,很显然我常常会在粘切时莫名其妙的在excel插入空列,很讨厌阿,还是加上type验证吧!
如题。