index
改成別的就可以了index1

解决方案 »

  1.   

    to lhb525(hobby) 
       Sheet1是excel文件的某一页的页名。to  GuoYangHai(Start)
       index是出错信息啊。
      

  2.   

    從出錯信息看是ODBC用的不對,我在我機器上過行一下看看吧.請等等....
      

  3.   

    while(rs.next()){
                 for(int i=0;i<numberOfColumns;i++){
                     if(i>1)System.out.println(",");
                     //System.out.println(rs.getString(i));
                     System.out.println(rsmd.getColumnName(i));
                 }
    這里有一個問韙,原來那個注消的是對的.那個方法是打出內容來,
    而下面那名是只打出了一列的,就想表的字段名.
    應改為這樣.
    while(rs.next()){
                 for(int i=0;i<numberOfColumns;i++){
                     if(i>1)System.out.println(",");
                     System.out.println(rs.getString(i));
                     //System.out.println(rsmd.getColumnName(i));
                 }只是對了一點,
    一會我會發一個完成的建立和讀出的用例.
      

  4.   

    這個用例是完成.我在我的機器上用了通過,
    jb7+jdk1.3.1 
    ========================================================begin==
    import java.sql.*;
    import java.io.*;
    import java.util.*;
    import java.text.*;
    public class Excel {
        public Excel()
        {
            setDefaults();
        }    private static void m(String pMessage)
        {
            System.out.println(pMessage);
        }    private void setDefaults()
        {
            setDriver("sun.jdbc.odbc.JdbcOdbcDriver");
            setUrl("jdbc:odbc");
    // ODBC data source named "TestExcel" defined from Control Panel
            setDataSource("ExcelODBC");
            setTableName("ExcelSheetName");
        }    public void openDatabase()
        {        String lConnectStr = getUrl()+":"+getDataSource();        try {
                Class.forName(getDriver());
                gConnection = DriverManager.getConnection(lConnectStr);
            }
            catch (Exception e) {
                m("openDatabase(): "+e.getMessage());
            }
        }    private void closeDatabase()
        {
            try {
                getConnection().close();
            }
            catch (Exception e) {
                m("closeDatabase(): "+e.getMessage());
            }
        }    private void createTable()
        {
            m("createTable() begin");        Statement lStat = null;        try {
                lStat = getConnection().createStatement();            lStat.execute("CREATE TABLE "+getTableName()+" ("
                              +" ID INTEGER"
                              +" ,NAME VARCHAR"
                              +")");
            }
            catch (Exception e) {
                m("createTable(): "+e.getMessage());
            }        m("createTable() end");
        }    private void doInsert()
        {
            m("doInsert() begin");        Statement lStat = null;        try {
                lStat = getConnection().createStatement();            lStat.executeUpdate("INSERT INTO "+getTableName()+ "(ID,NAME) VALUES(10,'KANGAROO')");
                lStat.executeUpdate("INSERT INTO "+getTableName()+"(ID,NAME) VALUES (20,'KOALA')");
                lStat.executeUpdate("INSERT INTO "+getTableName()+"(ID,NAME) VALUES (30,'PAULHOGAN')");            lStat.close();
            }
            catch (Exception e) {
                m("doInsert(): "+e.getMessage());
            }        m("doInsert() end");
        }    private void doQuery()
        {
            m("doQuery() begin");        try {
                Statement lStat = getConnection().createStatement();
                ResultSet lRes = lStat.executeQuery( "SELECT * FROM "+getTableName());
                ResultSetMetaData lMeta = lRes.getMetaData();// print out the column headers separated by commas
                for (int i = 1; i <= lMeta.getColumnCount(); ++i)
                {
                    if (i > 1)
                        System.out.print(", ");                String lValue = lMeta.getColumnName(i);
                    System.out.print(lValue);
                }
                System.out.println("");// print out the data separated by commas
                while (lRes.next())
                {
                    for (int i=1; i<=lMeta.getColumnCount(); ++i)
                    {
                        if (i > 1)
                            System.out.print(", ");                    String lValue = lRes.getString(i);
                        System.out.print(lValue);
                    }
                    System.out.println("");
                }            lRes.close();
                lStat.close();
            }
            catch (Exception e) {
                m("doQuery(): "+e.getMessage());
            }        m("doQuery() end");
        }    private void run()
        {
            openDatabase();        createTable();
            doInsert();
            doQuery();        closeDatabase();
        }    public static void main(String args[])
        {
            m("main() begin");        Excel lExcel = new Excel();        lExcel.run();        m("main() end");        System.exit(0);
        }    public void setTableName (String pValue)
        {
            gTableName = pValue;
        }    public String getTableName()
        {
            return(gTableName);
        }    public void setSql(String pValue)
        {
            gSql = pValue;
        }    public String getSql()
        {
            return(gSql);
        }    public Connection getConnection()
        {
            return(gConnection);
        }    public String getDataSource()
        {
            return(gDataSource);
        }    public void setDataSource(String pValue)
        {
            gDataSource = pValue;
        }    public void setDriver(String pValue)
        {
            gDriver = pValue;
        }    public void setUrl(String pValue)
        {
            gUrl = pValue;
        }    public String getDriver ()
        {
            return (gDriver);
        }    public String getUrl ()
        {
            return (gUrl);
        }    private Connection
        gConnection = null;    private String    gDataSource = null    ,
                          gTableName = null    ,
                          gSql = null    ,
                          gDriver = null    ,
                          gUrl = null    ;}
    =====================================================end===
    請大家試用.
      

  5.   

    我個人認為JAVA只能對它自已在EXCEL文件中創建的sheet可以讀寫,但是我自已建的sheet它不能識別.不知為什麼.奇怪了.
    上面做的朋友,可以用我的用例生成的那個ExcelSheetName,
    用你的那個程序讀一下ExcelSheetName,就沒問題了.
    有想法的朋友請找我.MSN:[email protected]
      

  6.   

    把for(int i=0;i<numberOfColumns;i++)
    中的i=0改成i=1,如下所示:
    for(int i=1;i<numberOfColumns;i++)
    即可。java.sql.ResultSet的列是从1开始计数的,不是从0