Avatar billede ekoch Nybegynder
07. december 2005 - 15:22 Der er 18 kommentarer

Problemer med at bruge data fra excel i Java

Hej

Mit problem er at anvende data fra mit excel regneark i min formel i Java. Jeg kan godt udskrive min excel data i java, men jeg kan ikke bruge den i min formel. Hvad gør jeg forkert?

Mit program er nedenunder:


/*
* Excel.java
*
* Created on 7. december 2005, 09:44
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;



/**
*
* @author Ellen Koch  Nielsen
*/
public class Excel {
   
    /** Creates a new instance of Excel */
    public Excel() {
    }
   
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
        Connection c = null;
        Statement stmnt = null;
        try
        {
            Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
            c = DriverManager.getConnection( "jdbc:odbc:vejrdata", "", "" );
            stmnt = c.createStatement();
            String query = "select TempC from [sheet1$] where Time2=4334;";
            ResultSet rs = stmnt.executeQuery( query );
           
           
            System.out.println( "Temperatur:" );
            while( rs.next() )
            {
                System.out.println( rs.getString( "TempC" ) );
            }
        }
        catch( Exception e )
        {
            System.err.println( e );
       
     
        }
       
        finally
        {
       
        double lufttemperatur;
        lufttemperatur = ( rs.getString( "TempC" ) ); /*mit problem er her!!!!!!!!!*/
       
        String stre = javax.swing.JOptionPane.showInputDialog("Indtast middeltemperatur");
        int svaren = Integer.parseInt(stre);
               
        double middeltemperatur;
        middeltemperatur = svaren;
               
        double x;
        x = middeltemperatur - lufttemperatur;
       
        double virkningsgrad;
        virkningsgrad = 0.82;
       
        double tabskoefficient1;
        tabskoefficient1 = 3.18;
       
       
                   
       
        double E;
        E = 100;
       
        double tabskoefficient2;
        tabskoefficient2 = 0.01;
       
        // resultat af n(x) i %
        double effektligning;
        effektligning = virkningsgrad - tabskoefficient1 * (x/E) - tabskoefficient2 * ((x*x)/E);
               
        System.out.println("n(x) = " + effektligning + " % ");
        {
            try
            {
                stmnt.close();
                c.close();
            }
            catch( Exception e )
            {
                System.err.println( e );
               
               
            }
        }

    }
   
}
}

Hilsen
Ellen
Avatar billede arne_v Ekspert
07. december 2005 - 17:02 #1
hvad er problemet ?

at rs ikke er i scope der ?
Avatar billede ekoch Nybegynder
07. december 2005 - 19:37 #2
net beans skriver: cannot find symbol,  symbol: variable rs,  lokation: class Excel.
Jeg kan ikke bruge værdien fra mit excel regneark.
Avatar billede arne_v Ekspert
07. december 2005 - 20:02 #3
ja

ret

ResultSet rs = stmnt.executeQuery( query );

til

rs = stmnt.executeQuery( query );

og lav en

ResultSet rs = null;

ovenfor try.
Avatar billede ekoch Nybegynder
07. december 2005 - 20:51 #4
nu skriver net beans:

incompatible types,
found: java.lang.String
required: double
Avatar billede arne_v Ekspert
07. december 2005 - 21:00 #5
hvilken linie ?
Avatar billede ekoch Nybegynder
07. december 2005 - 21:12 #6
denne linie:
lufttemperatur = ( rs.getString( "TempC" ));
Avatar billede arne_v Ekspert
07. december 2005 - 21:36 #7
lufttemperatur = Double.parseDouble( rs.getString( "TempC" ));
Avatar billede ekoch Nybegynder
07. december 2005 - 22:09 #8
nu skriver net beans:
unrported exception java.sql.SQLException;must be caught or declared to be thrown

Stadig samme linie:
        lufttemperatur = Double.parseDouble( rs.getString( "TempC" ));
Avatar billede arne_v Ekspert
07. december 2005 - 22:17 #9
den skal jo så inden i en try catch
Avatar billede ekoch Nybegynder
07. december 2005 - 22:32 #10
output i net beans skriver nu:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Ellen Koch  Nielsen\JavaApplication40\build\classes
compile:
run:
Temperatur:
2.1
java.sql.SQLException: No data found
BUILD SUCCESSFUL (total time: 2 seconds)
Avatar billede arne_v Ekspert
07. december 2005 - 22:54 #11
din while løkke har jo placeret dig efter sidste række så ...
Avatar billede ekoch Nybegynder
08. december 2005 - 14:21 #12
Hej
Jeg ved forstår ikke, hvad jeg skal gøre...

Output skriver sådan:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Ellen Koch  Nielsen\JavaApplication40\build\classes
compile:
run:
2.1
java.sql.SQLException: No data found
BUILD SUCCESSFUL (total time: 0 seconds)

/*
* Excel.java
*
* Created on 7. december 2005, 09:44
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;



/**
*
* @author Ellen Koch  Nielsen
*/
public class Excel {
   
    /** Creates a new instance of Excel */
    public Excel() {
    }
   
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
        Connection c = null;
        Statement stmnt = null;
        ResultSet rs = null;
        try
        {
            Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
            c = DriverManager.getConnection( "jdbc:odbc:vejrdata", "", "" );
            stmnt = c.createStatement();
            String query = "select TempC from [sheet1$] where Time2=4560;";
            rs = stmnt.executeQuery( query );
           
         
       
           
            while( rs.next() )
            {
                System.out.println( rs.getString( "TempC" ) );
                double lufttemperatur;
        lufttemperatur = Double.parseDouble( rs.getString( "TempC" ));
       
        String stre = javax.swing.JOptionPane.showInputDialog("Indtast middeltemperatur");
        int svaren = Integer.parseInt(stre);
               
        double middeltemperatur;
        middeltemperatur = svaren;
               
        double x;
        x = middeltemperatur - lufttemperatur;
       
        double virkningsgrad;
        virkningsgrad = 0.82;
       
        double tabskoefficient1;
        tabskoefficient1 = 3.18;
       
       
                   
       
        double E;
        E = 100;
       
        double tabskoefficient2;
        tabskoefficient2 = 0.01;
       
        // resultat af n(x) i %
        double effektligning;
        effektligning = virkningsgrad - tabskoefficient1 * (x/E) - tabskoefficient2 * ((x*x)/E);
               
        System.out.println("n(x) = " + effektligning + " % ");
            System.out.println( "Temperatur:" );
           
            }
        }
       
       

        catch( Exception e )
        {
            System.err.println( e );
       
       
        }
       
         
            try
            {
                stmnt.close();
                c.close();
            }
            catch( Exception e )
            {
                System.err.println( e );
               
     
               
            }
        }

    }
Avatar billede ekoch Nybegynder
08. december 2005 - 22:28 #13
Jeg kan stadig ikke få det til at virke
Avatar billede arne_v Ekspert
08. december 2005 - 23:21 #14
hvad sker der med den kode ?
Avatar billede ekoch Nybegynder
09. december 2005 - 09:21 #15
Tak for hjælpen
Avatar billede ekoch Nybegynder
09. december 2005 - 09:22 #16
Tak for hjælpen
Avatar billede arne_v Ekspert
09. december 2005 - 14:27 #17
????
Avatar billede ekoch Nybegynder
10. december 2005 - 21:53 #18
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester