ODBC - Excel

Pessoal,

Desenvolvi uma aplicação aqui utilizando o excel e estou desejando carregar alguns dados dessa planinha no meu programa em java, porém não estou conseguindo encontrar a planilha, gerando uma exceção. Espero que o código possa ajudar a esclarecer minha dúvida.
ps: Estou utilizando um jFileChooser para selecionar o arquivo no drive.

Segue class de abertura de conexão com o excel:

import java.sql.*;

public class ConexaoExcel{
    
    static public Connection conexao = null;
    private String caminho = "";
    
    public ConexaoExcel(){
        
        if( conexao == null )
            abreConexao();
        
    }
    
    public void setCaminho(String caminho){
        this.caminho = caminho;
    }
    
    public void abreConexao(){
        
        try{
            
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            conexao = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ="+caminho+"");
            
            
        } catch(ClassNotFoundException e){
            
            System.out.println("Não achei a classe: " + e.getMessage());
            
        } catch(Exception e){
            
            System.err.println("Erro no acesso a planilha!");
            
        }
        
    }
    
    public void fechaConexao(){
        
        try{
            
            conexao.close();
            
        } catch(SQLException e){
            
            System.err.println("Erro no fechamento da conexão...");
        }
    }
}

Segue abaixo a classe em que crio o objeto e realizo as instruções em SQL:

chooser.setCurrentDirectory(new File("."));
        chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
            public boolean accept(File f) {
                return f.getName().toLowerCase().endsWith(".xls")
                || f.isDirectory();
            }
            public String getDescription() {
                return "XLS Documents";
            }
        });
        ConexaoExcel objetoCaminho = new ConexaoExcel();
        objetoCaminho.setCaminho(chooser.getSelectedFile().getAbsolutePath());
        
        try{
            ConexaoExcel objetoExcel = new ConexaoExcel();
            Statement st = objetoExcel.conexao.createStatement();
            PreparedStatement ps = objetoExcel.prepareStatement("SELECT * FROM [Área$]");
            ResultSet rs = ps.executeQuery();
            DefaultTableModel modelo1 = (DefaultTableModel)tabelaPendenciasArea.getModel();
            int i = 0;
            while (modelo1.getRowCount() > 0){
                modelo1.removeRow(i);
            }
            while(rs.next()){
                String status = rs.getString(17);
                System.out.println(status);
                if(status.equals("Pendente")){
                    String id = rs.getString(1);
                    String descricao = rs.getString(2);
                    String[] novaLinha = new String[2];
                    novaLinha[0] = id;
                    novaLinha[1] = descricao;
                    modelo1.addRow( novaLinha );
                }
            }
        } catch(Exception e){
            System.out.println(e);
        }

e Segue a exceção que está ocorrendo:
[color=red]"Erro no acesso a planilha![/color]

alguem?

Aparentemente alguma coisa está errada no caminho que está informando.
Onde abre a conexão, capture a mensagem da exception (e) no segundo catch e confirme o erro.

Você pode tentar informando o caminho do arquivo da forma abaixo:

c= DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=C:/seu_arquivo.xls");