如下:public class test5{

    public test5(){
        Object key=null;
        Object value=null;
        Map map=new HashMap();
        List list=new ArrayList();
        String connUrl = "jdbc:odbc:Driver={MicroSoft Excel Driver (*.xls)};DBQ=D:/Tomcat 6.0/webapps/myapp/db1.xls";  
        String dbDrv = "sun.jdbc.odbc.JdbcOdbcDriver";   
        String[] colName=null;
        String[] colText=null;
        Connection con = null;
        Statement ps=null;
        ResultSet rs=null;
        try{
       Class.forName(dbDrv).newInstance();
       con = DriverManager.getConnection(connUrl);
       ps=con.createStatement();
                rs=ps.executeQuery("select * from [sheet1$]");
         
                  rs.next();
                colName=new String[17];
                  colText=new String[17];
          
                  for (int i=1;i<colName.length;i++){
          
                if(rs.getMetaData().getColumnType(i)==Types.INTEGER){   
  
                        colText[i] = rs.getInt(i).toString;         //错误:无法取消引用int
  
                        }else{   
  
                        colText[i] = rs.getString(i);   
  
                        }
          
                 colName[i]=rs.getMetaData().getColumnName(i);
                  }
          
                         
        for (int i=1;i<colName.length;i++){
          
                       map.put(colName[i],colText[i]);   
        }
       
        list.add(map);
          
        }catch(Exception ex){
        ex.printStackTrace();
        }
          
         
        
        
                 
        System.out.println(map.size());
                
      }
        
   
      
    public static void main(String args[]){   
        new test5();
      }
}
        

解决方案 »

  1.   

    //错误:无法取消引用int
     到底是什么意思?有异常最好贴异常 或者描述下
      

  2.   

    int没有toString方法, Integer才有.!
    LZ可以这样 getInt()+""  这样可以转成串
      

  3.   

    感izard999,
    但是,
    好象同一列数据类型要相同,我是说列,或者说对某个KEY,value类型要相同,
    比如列名(KEY)=“备注”,第一个记录是个数字,下一个记录是个文本,程序就会只显示其中一个,
    另一个记录的内容可能不显示,
      

  4.   

    在数据库里确实每一列的类型要相同,但是java里面可以定义成key->object.!
    你说的情况,,我提供给你一个解决方案.! 把数据库的列定义成varchar/nvarchar,看到你拿的是int,所以别的类型不帮你写了,取出来的值跟String regex = "^[1-9]\\d*$"用正则去匹配,如果满足的话就Integer.parseInt(刚取出的值).! 
      

  5.   

    可否讲讲在什么情况下 才会出现:错误:无法取消引用int