El código en cuestión es el siguiente:
Cita:
He puesto todo lo que yo he escrito, por si las dudas.. package prgAcademico;
// Primero importamos las librerías necesarias
// import java.sql.* importa todas las librerías relacionadas con sql
import java.sql.*;
// import
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.table.DefaultTableModel;
public class Main extends javax.swing.JFrame {
public Main() {
initComponents();
//Posionamos en el centro
this.setLocationRelativeTo(null);
//iniciamos maximizado
this.setExtendedState(MAXIMIZED_BOTH);
//ocultamos el JtextField para hacer más bonita la interfaz (?)
this.jruta.setVisible(false);
}
private void jrutaActionPerformed(java.awt.event.ActionEvent evt) {
}
private void jAbrirActionPerformed(java.awt.event.ActionEvent evt) {
//Creamos un filtro para que sólo se puedan seleccionar archivos excel
FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivos Excel","xls","xlsx");
//Se crea el JFileChooser, sirve para abrir una ventana que nos permite seleccionar el archivo
JFileChooser fileChooser = new JFileChooser();
//Se añade el filtro
fileChooser.setFileFilter(filter);
//Se especifica el título de la ventana
fileChooser.setDialogTitle("Abrir archivo..");
//Se crea el file, donde se pone la carpeta que abrirá primero
File ruta = new File("C:/Academico/planillas");
//Coloca la ruta donde se abrira el filechooser
fileChooser.setCurrentDirectory(ruta);
//Se establece la apertura de la ventana Abrir
int result = fileChooser.showOpenDialog(null);
//Condicionante para obtener la ruta del archivo seleccionado
if (result == JFileChooser.APPROVE_OPTION){
File file = fileChooser.getSelectedFile();
jruta.setText(String.valueOf(file));
try {
//definir el driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String URL = "jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls)};DBQ=";
//obtener ruta
String sourcename = jruta.getText();
// Establecemos la variable que contiene el driver y la ruta
URL = URL + sourcename + ";READONLY=TRUE;DriverID=790";
System.out.println(URL);
//conectamos
Connection conexion = DriverManager.getConnection(URL);
//obtenemos metadatos
DatabaseMetaData md = conexion.getMetaData();
//consultar nombre de tablas
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()){
String val = rs.getString(3);
String tbl = val.replace("'", "");
tbl = tbl.replace("$", "");
jcursos.addItem(tbl);
jcursos.setEnabled(true);
btnConsultar.setEnabled(true);
}
}
catch (ClassNotFoundException | SQLException e){
}
}
}
private void btnConsultarActionPerformed(java.awt.event.ActionE vent evt) {
//Este código conecta el archivo excel como base de datos
try {
//Para establecer el modelo al JTable
DefaultTableModel notas = new DefaultTableModel();
this.jtQuery.setModel(notas);
//primero definimos el driver que conectará el arhivco excel
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbURL = "jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls)};DriverID=790;Dbq=";
//Obtenemos la ruta del archivo através del jruta.
String dataSourceName = jruta.getText();
//Establecemos el código de comunicación entre el driver y la ruta
dbURL = dbURL + dataSourceName + ";READONLY=TRUE";
//realizamos la conexion
Connection con = DriverManager.getConnection(dbURL,"","");
Statement st = con.createStatement();
Object e = jcursos.getSelectedItem();
String apoyo = String.valueOf(e);
apoyo = "Administracion 2011";
ResultSet rs = st.executeQuery("select * from ['" + apoyo + "$']");
System.out.println(dbURL);
ResultSetMetaData rsMd = rs.getMetaData();
int columnas = rsMd.getColumnCount();
for (int i=1; i<= columnas; i++){
notas.addColumn(rsMd.getColumnLabel(i));
}
while (rs.next()){
Object[] fila = new Object[columnas];
for (int i=0; i < columnas; i++) {
fila[i] = rs.getObject(i+1);
}
notas.addRow(fila);
}
jtQuery.getColumnModel().getColumn(1).setPreferred Width(250);
jlabelb.setEnabled(true);
cboBuscar.setEnabled(true);
txtBusqueda.setEnabled(true);
for (int i=2; i<= columnas; i++){
jtQuery.getColumnModel().getColumn(i).setPreferred Width(200);
}
}
//Este código nos lanza un error en caso de encontrar excepciones
catch (ClassNotFoundException | SQLException e) {
}
}
}
// Primero importamos las librerías necesarias
// import java.sql.* importa todas las librerías relacionadas con sql
import java.sql.*;
// import
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.table.DefaultTableModel;
public class Main extends javax.swing.JFrame {
public Main() {
initComponents();
//Posionamos en el centro
this.setLocationRelativeTo(null);
//iniciamos maximizado
this.setExtendedState(MAXIMIZED_BOTH);
//ocultamos el JtextField para hacer más bonita la interfaz (?)
this.jruta.setVisible(false);
}
private void jrutaActionPerformed(java.awt.event.ActionEvent evt) {
}
private void jAbrirActionPerformed(java.awt.event.ActionEvent evt) {
//Creamos un filtro para que sólo se puedan seleccionar archivos excel
FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivos Excel","xls","xlsx");
//Se crea el JFileChooser, sirve para abrir una ventana que nos permite seleccionar el archivo
JFileChooser fileChooser = new JFileChooser();
//Se añade el filtro
fileChooser.setFileFilter(filter);
//Se especifica el título de la ventana
fileChooser.setDialogTitle("Abrir archivo..");
//Se crea el file, donde se pone la carpeta que abrirá primero
File ruta = new File("C:/Academico/planillas");
//Coloca la ruta donde se abrira el filechooser
fileChooser.setCurrentDirectory(ruta);
//Se establece la apertura de la ventana Abrir
int result = fileChooser.showOpenDialog(null);
//Condicionante para obtener la ruta del archivo seleccionado
if (result == JFileChooser.APPROVE_OPTION){
File file = fileChooser.getSelectedFile();
jruta.setText(String.valueOf(file));
try {
//definir el driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String URL = "jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls)};DBQ=";
//obtener ruta
String sourcename = jruta.getText();
// Establecemos la variable que contiene el driver y la ruta
URL = URL + sourcename + ";READONLY=TRUE;DriverID=790";
System.out.println(URL);
//conectamos
Connection conexion = DriverManager.getConnection(URL);
//obtenemos metadatos
DatabaseMetaData md = conexion.getMetaData();
//consultar nombre de tablas
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()){
String val = rs.getString(3);
String tbl = val.replace("'", "");
tbl = tbl.replace("$", "");
jcursos.addItem(tbl);
jcursos.setEnabled(true);
btnConsultar.setEnabled(true);
}
}
catch (ClassNotFoundException | SQLException e){
}
}
}
private void btnConsultarActionPerformed(java.awt.event.ActionE vent evt) {
//Este código conecta el archivo excel como base de datos
try {
//Para establecer el modelo al JTable
DefaultTableModel notas = new DefaultTableModel();
this.jtQuery.setModel(notas);
//primero definimos el driver que conectará el arhivco excel
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbURL = "jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls)};DriverID=790;Dbq=";
//Obtenemos la ruta del archivo através del jruta.
String dataSourceName = jruta.getText();
//Establecemos el código de comunicación entre el driver y la ruta
dbURL = dbURL + dataSourceName + ";READONLY=TRUE";
//realizamos la conexion
Connection con = DriverManager.getConnection(dbURL,"","");
Statement st = con.createStatement();
Object e = jcursos.getSelectedItem();
String apoyo = String.valueOf(e);
apoyo = "Administracion 2011";
ResultSet rs = st.executeQuery("select * from ['" + apoyo + "$']");
System.out.println(dbURL);
ResultSetMetaData rsMd = rs.getMetaData();
int columnas = rsMd.getColumnCount();
for (int i=1; i<= columnas; i++){
notas.addColumn(rsMd.getColumnLabel(i));
}
while (rs.next()){
Object[] fila = new Object[columnas];
for (int i=0; i < columnas; i++) {
fila[i] = rs.getObject(i+1);
}
notas.addRow(fila);
}
jtQuery.getColumnModel().getColumn(1).setPreferred Width(250);
jlabelb.setEnabled(true);
cboBuscar.setEnabled(true);
txtBusqueda.setEnabled(true);
for (int i=2; i<= columnas; i++){
jtQuery.getColumnModel().getColumn(i).setPreferred Width(200);
}
}
//Este código nos lanza un error en caso de encontrar excepciones
catch (ClassNotFoundException | SQLException e) {
}
}
}
Trabajo con NetBeans IDE 7.4
Sólo soy un novato espero me puedan decir.