Eingelesene Exel datei aktualisiert ausgeben


olgunk

Grünschnabel
Hallo Zusammen,

programiere grade eine Code der eine Exel-Liste mit Artikelnummer einzulesen.
Es klappt soweit auch alles, nur in der Liste ist es so aufgebaut das auf ein Artikelnummer ein Datum folgt der immer
das aktuelle Datum +1 -1 usw. erzeugt.

Wenn ich mein Code starte sehe ich leider das, dass Datum nicht aktuell ist.

Hier mein Code:

Code:
import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class create_bc {

private String inputFile;

  public void setInputFile(String inputFile) {
    this.inputFile = inputFile;
  }

  public void read() throws IOException  {
    File inputWorkbook = new File(inputFile);
    Workbook w;
    try {
      w = Workbook.getWorkbook(inputWorkbook);
    
	  
     for (int y = 2; y < 7; y++) {
    	 System.out.println("");
      for (int x = 1; x < 6; x++) {
    	  
    	  Cell ean3 = sheet.getCell(x, y);
       	  System.out.print("" + ean3.getContents());
       	
      }
      }
     
	  
   } catch (BiffException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) throws IOException {
    create_bc test = new create_bc();
    test.setInputFile("C:\\Dokumente und Einstellungen\\okutrag\\Desktop\\Barcode\\BarcodeLi.xls");
    test.read();
  }

}


Leider kann ich meine Exel Datei hier nicht hochladen, weil eine xls datei nicht vom Forum unterstützt wird.

Hier ein Screenshot:

exel.JPG
 

olgunk

Grünschnabel
Tut mir leid für die unausreichende Erklärung.

Ich hab ein Java Code der eine bestimmte Excel Datei(xls) einliest. In dieser Datei sind mehrere Daten(Mehrzahl Datum) von denen wiederum entweder vom heutigen Tage abgezogen werden (Heute()-1) oder +1 usw. die Excel Datei funktioniert ohne Probleme
Nun zu meinem Problem :
Wenn ich diese Datei einlesen nimmt es nicht das aktuelle Datum, erst wann man die Formatierung in der Excel liste von Datum auf Zahl und wieder rückwärts macht, funktioniert es.

Ich hoffe nun auf eure Hilfe
 

youza

Erfahrenes Mitglied
Ich schätze mal, dass Heute ein Makro von Excel ist und ich bin absolut nicht sicher wann dieses Makro aufgerufen wird ist auch nur ne Annahme aber vermutlich wird des nicht aufgerufen wenn du die Exceltabelle mit Java öffnest. Eine Möglichkeit wäre nur den relativen Wert (zu Heute) in der Exceltabelle zu speichern das heutige Datum mit Java zu erzeugen und dann weiter zu verarbeiten.

Eine Excelliste in der Art:
Tabelle_Tut.png

und verarbeiten dann in der Art:

Java:
package today;

import java.util.Date;

public class Today {

	/**
	 * @param args
	 */
	 //Faken des ExcelFeldes Relative
	static int Zugehoeriges_Feld = 1;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date today = new Date();	
		Date MHD = new Date();
		MHD.setTime(today.getTime()+(24*60*60*1000*((long)Zugehoeriges_Feld)));
		System.out.println(MHD);
	}

}
 

olgunk

Grünschnabel
So ich glaube ich habe die Lösung. Trotzdem brauche ich eure Hilfe:

Wenn ich die Excel Tabelle vor der Ausführung des Codes öffnen und auf die Frage ob es gespeichert werden soll mit Ja antworte funktioniert es.
Meine Frage ist nun: Wie bekomme ich das im JavaCode hin?
 

youza

Erfahrenes Mitglied
Also starten kanns du es ungefähr so:

Java:
try {
				Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE "+"C:\\Dokumente und Einstellungen\\okutrag\\Desktop\\Barcode\\BarcodeLi.xls");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
ungetestet!

Edit:
Allerdings solltest du von der Lösung weggehen des hat mit den Makros zu tun. Hast du dir des mal mit den Umweg um das extra Feld überlegt?
 

youza

Erfahrenes Mitglied
Auf die Gefahr hin, dass du des jetzt unfreundlich findest allerdings finde ich dein Art hier Fragen zu stellen etwas merkwürdig...
man sagt dir wie es vielleicht anders geht du gehst keinen Meter drauf ein sagst nicht danke oder irgndwas ich bezweifle, dass der Weg den du da gehen willst richtg ist!
Ein Programm aus Java zu öffnen ist möglich es zu killen auch aber dem Program zu sagen bitte speichere Ab und schließe anschließend ganz brav die Anwendung bezweifle ich sehr stark!
Wenn überhaupt müsstest du dich da mit der Excel API auskennen und des Ganze dann über JNI mit Java verbinden wäre allerdings unendlich kompliziert...

Hier noch was zum killen von Prozessen:
http://www.java-forum.org/codeschni...skiller-win32-serivce-handler.html#post213987
 
Zuletzt bearbeitet:

olgunk

Grünschnabel
Warum soll ich mich für etwas bedanken was sowieso selbtverständlich ist. Die Datei zu öffnen hatte ich schon, sonst könnte ich ja nicht drauf kommen das was mit meinem Code faul ist. Aber egal. Außerdem: Hätte ich das nötige Wissen gehabt würde ich meine Frage nicht hier reinstellen, nur das dies mal gesagt wurde. Aber trotzdem DANKE für deine Mühe.
 

Neue Beiträge