PDA

View Full Version : [Java]problema importazione dati in un foglio excel


matteo.pata
27-11-2007, 11:08
Ciao ragazzi ho un problema con java.Dovrei importare dei dati su un foglio excel da un database.Allora per prima cosa mi collego al database(oracle) e faccio una query su una tabella del DB a questo punto dovrei scrivere i risultati della query sul foglio di un file excel creato da me.
Questo č il codice:
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.*;
import java.util.*;
import oracle.jdbc.pool.*;
import oracle.jdbc.*;
import oracle.sql.*;
import java.io.*;
import java.net.*;

public class ExportExcel
{
public static void main (String[] args) throws SQLException
{

String userName = "******";
String password = "*******";
String url ="jdbc:oracle:thin:@//127.0.0.1:1521/XE";
Connection conn = null;
Statement stmnt = null;

// Creazione di DataSource e connessione al database
OracleDataSource ods = new OracleDataSource();
ods.setURL(url);
ods.setUser(userName);
ods.setPassword(password);

try
{
conn = ods.getConnection();
System.out.println("Connessione creata");
}
catch (SQLException e)
{
System.out.println("Impossibile connettersi al database");
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
}

if (conn != null)
{
try
{
// Creazione di uno Statement
Statement studenti = conn.createStatement();

// Esecuzione dell'interrogazione
ResultSet rset = studenti.executeQuery("SELECT * FROM Studenti");

while (rset.next()) {
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
conn = DriverManager.getConnection( "jdbc:odbc:ProvaExcelExport", "", "" );
stmnt = conn.createStatement();
stmnt.executeUpdate("INSERT INTO ProvaExcelExport(Foglio1) VALUES('"+((rset.getString(1)))+"',' "+((rset.getString(2)))+"','" +((rset.getString(3)))+"')");

}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}

// Chiusura della connessione
conn.close();
System.out.println("Connessione terminata");
}
}
}


Il problema che mi da quando lo faccio girare č il seguente:
[Microsoft][Driver ODBC Excel] Il numero dei valori nella query non corrisponde a quello dei campi di
destinazione.:muro: :muro:

Qualcuno mi puņ dare una mano per favore se non č chiaro la spiegazione di ciņ che deve fare scrivetemi pure che proverņ a rispiegare meglio.

isAlreadyInUse
27-11-2007, 11:11
Sembra un porblema di query... prova ad elencare nellainsert i campi che inserisci

INSERT INTO FOGLIO (COL1,COL2,..) VALUES(...)

matteo.pata
27-11-2007, 11:15
come le chiamo perņ le colonne del foglio di excel???che nome hanno.......

isAlreadyInUse
27-11-2007, 11:20
Vedi se ti puo essere utile
http://forum.java.sun.com/thread.jspa?threadID=771767&messageID=4399330

matteo.pata
27-11-2007, 12:23
Niente non riesco mi restituisce sempre lo stesso errore...cavolo ma dove sbaglio:muro: :muro: :muro: :muro:

isAlreadyInUse
27-11-2007, 12:25
Prova ad impostare la prima riga del foglio come intestazione delle colonne aggiungendo il nome

matteo.pata
27-11-2007, 13:04
Allora mettendo i nomi alle colonne non mi restituisce errore perņ non mi importa i dati prelevati dal reslutSet.Non scrive assolutamente niente.

matteo.pata
27-11-2007, 13:11
Ciao ho notato che se tengo il file excel aperto mi fa l'import perņ se č chiuso non lo fa...quale potrebbe essere il problema???Altra cosa che ho notato se cancello i dati che ha importato e rifaccio girare il programma mi scrive i dati dalla riga appena sotto i dati che aveva inserito precedentemente anche se li avevo cancellati dal file excel salvando pure...ciao grazie dell'attenzione.