Avatar billede ingerkatrine Nybegynder
11. december 2005 - 15:27 Der er 1 kommentar og
1 løsning

Excel til Java og tilbage igen

Jeg er nu angående java, og jeg har meget brug for hjælp.

Jeg kan godt hente en kolonne fra Excel, men når jeg vil hente nummer 2 kolonne, går det gjalt. Mit problem lige nu er referencer mellem de forskellige while løkker.
Eks 1. I while løkke nr. 2 skal jeg bruge "Tz" fra while løkke 1, hvordan forbinder jeg de to løkker


Mit program er her:
/*
* Excelwhile.java
*
* Created on 10. december 2005, 23:01
*
* 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.
*/

package javaapplication50;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;

/**
*
* @author Ellen Koch  Nielsen
*/
public class Excelwhile {
 

/** Creates a new instance of Excelwhile */

public Excelwhile() {
    }

public static void main(String[] args) {
        Connection c = null;
        Statement stmnt = null;
        ResultSet rs = null;
       
       
       
       
            double Etm = -15;
            double Etst = -9.95;
            double K = 4 * (Etm - Etst);
           
           
       
        try
        {
            Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
            c = DriverManager.getConnection( "jdbc:odbc:vejrdata", "", "" );
            stmnt = c.createStatement();
            String query = "select Time from [sheet1$] where Time2=4571;";
            rs = stmnt.executeQuery( query );
         
           
           
            while( rs.next() )
            {
            // pkt. 1.0   
            // Udregning af formel: solindfald = m2 * Globalsolstråling * Rb
            // pkt. 1.1 udregning af Rb:
            // Rb = Forholdet mellem bestrålingsstyrken af direkte solstråling på en skrå flade og på vandret

   
            // udregning af K
            // lokalkonstanten = K;
           
            stmnt = c.createStatement();
            String queryd = "select Dagnr from [sheet1$] where Time2=4571;";
            rs = stmnt.executeQuery( queryd );
           
           
           
            double Tzt;
            Tzt = Double.parseDouble( rs.getString( "Time" ));
           
            double Tz;
            Tz = Tzt * 60;
       
       
           
            // Tz = lokaltid(zonetid)
           
           
           
            System.out.println(+Tz);
            }
           
           
           
           
           
            while( rs.next( ) ) {
           
               
               
            double dagnr;
            dagnr = Double.parseDouble( rs.getString( "Dagnr" ));
       
            // udregning af B
            // B indsættes i grader
           
            // dagensnummer = dagnr;
           
            double B;
            B = (dagnr - 1) * (360/365);
       
           
         
           
           
            // udregning af Tj
            // Tidekvationen = Tj;
       
            double Tj;
            Tj = 229.2 * (0.000075 + 0.001868 * Math.cos(B) - 0.030277 * Math.sin(B) - 0.014615 * Math.cos(2*B) - 0.04089 * Math.sin(2*B));
               
            // Soltid = Ts;
            // udregning af Ts
           
            double Ts;
            Ts = Tz + Tj + K;
           
           
         
       
            // w = timevinklen
            // udregning af w
           
            double w;
            w = 15 * (Ts -12);
       
            //  deklination = d
            // udregning af d
           
            double d;
            d = 23.45 * Math.sin(((284+dagnr)*260)/365);
       
            // ø = stedet breddegrad i Tylstrup
           
            double ø;
            ø = 57.180;
       
            // Beta = fladens hældning
       
            double Beta;
            Beta = 45;
       
            // udregning af Rb
            // Rb = Forholdet mellem bestrålingsstyrken af direkte solstråling på en skrå flade og på vandret

           
            double Rb;
            Rb = ((Math.cos((ø-Beta))*Math.cos(d)*Math.cos(w)+Math.sin((ø-Beta))*Math.sin(d))/(Math.cos(d)*Math.cos(ø)*Math.cos(w)+Math.sin(d)*Math.sin(ø)));                     
       
               
           
            }
           
           
           
           
           
            stmnt = c.createStatement();
            String queryf = "select GlobalS from [sheet1$] where Time2=4571;";
            rs = stmnt.executeQuery( queryf );
           
            while( rs.next() ) {
                // pkt. 1.3
            // uddregning af solindfald
            // Solindfald = m2 * E * Rb
           
            // GlobalSol = data fra vejrdata
            // E = GlobalSol
           
            double E;
            E = Double.parseDouble( rs.getString( "GlobalS" ));
           
            // m2 = kvadratmeter på solfangeren
       
            double m2;
            m2 = 2.51;
           
            // udregning af solindfald
           
           
            double SolIndfald;
            SolIndfald = m2 * E * Rb;
           
           
           
           
            // pkt  2.0
            // udregning af Tm = ((tid * SolIndfald)/(masse * cp)+ Tind)/2
            // Tm = middeltemperatur
           
            // pkt. 2.1
            // udregning af DeltaT
            // DeltaT = (tid * SolIndfald)/(masse * cp)
           
            double tid;
            tid = 3600;
           
            double masse;
            masse = 75.3;
           
            // cp = SpecifikVarmekapacitet
           
            double cp;
            cp = 4180;
           
            // udregning af DeltaT
             
            double DeltaT;
            DeltaT = ((tid * SolIndfald)/(masse * cp));
           
            // pkt 2.2
            // udregning af Tm
           
            double Tind;
            Tind = 4;
       
            double Tm;
            Tm = ((tid * SolIndfald)/(masse * cp)+ Tind)/2;
           
         
           
            // pkt. 3.0
            // Solfangerens effekt = nX * E * m2 * Rb
           
            // pkt. 3.1
            // nX = virkningsgrad
           
            double nX;
            nX = 0.82;
           
            // pkt. 3.2
            // udregning af SolfangerEffekt
           
            double SolfangerEffekt;
            SolfangerEffekt = nX * E * m2 * Rb;
           
            System.out.println("Solfangerens Effekt = " + SolfangerEffekt + "watt");
           
            // pkt. 4.0
            // udregning af TemperaturÆndring
            // TemperaturÆndring = ((tid * SolfangerEffekt)/(masse * cp)) + Tind
           
            // pkt. 4.1
           
            double TemperaturÆndring;
            TemperaturÆndring = ((tid * SolfangerEffekt)/( masse * cp)) + Tind ;
       
           
          }
           
            stmnt = c.createStatement();
            String queryt = "select Dag from [sheet1$] where Time2=4571;";
            rs = stmnt.executeQuery( queryt );
           
            while( rs.next() )
            {
           
            // pkt. 5.0
       
            // pkt. 5.1
           
           
               
            if (TemperaturÆndring >= 45)
           
            {
           
           
            // Hvis temperaturen er over 45 grader er formlen: Seffekt = Ett:ddd
           
            double Ettdd;
            Ettdd = Double.parseDouble( rs.getString( "dag" ));
       
   
            System.out.println( + SolfangerEffekt );
           
           
            }
            // pkt. 5.2
        else if (TemperaturÆndring >=12)
        {
           
            // Denne formel gælder, hvis temperaturen er under 45 grader og over 12 grader: solfangeren effekt + el - tab = Ett:ddd
           
            double El;
            El = 1120;
       
            double Tab1;
            Tab1 = 353;
           
            double Tab2;
            Tab2 = 436;
           
            double Tab;
            Tab = Tab1 + Tab2;
                 
           
            double ligning;
            ligning = SolfangerEffekt + El - Tab;
       
     
            double Ettdd;
            Ettdd = Double.parseDouble( rs.getString( "Dag" ));
     
         
            System.out.println( + ligning );
           
               
        }
            // pkt. 5.3
        else if (TemperaturÆndring <= 12)
           
            {     
           
      }
     
       
           
     
       
       
       
            }
           
        }
       
       

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

}
Avatar billede _carsten Nybegynder
11. december 2005 - 16:40 #1
Følg eventuelt med her:  http://exp.dk/spm/671173
Avatar billede _carsten Nybegynder
11. december 2005 - 21:03 #2
I kæmper vist med samme opgave

Se løsningen i mit svar her: http://exp.dk/spm/671173
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