2012-03-23 9 views
0

Ich verwende JExcel, um mit meiner Java-Anwendung in Excel-Arbeitsblätter zu schreiben. Beim Erstellen oder Lesen von einer Datei konnte ich nur einen bestimmten Pfad verwenden:Können Sie eine Arbeitsmappe mit JExcel auf einen unbestimmten Pfad öffnen/speichern?

Arbeitsmappe samWB = Workbook.getWorkbook (neue Datei ("C: /eclipse/samples.xls")); Blatt samWS = samWB.getSheet (0);

Allerdings muss ich in der Lage sein, meine Anwendung zu nehmen und sie an verschiedenen Orten auf einem Server zu speichern und die Datendateien, aus denen ich lesen und schreiben werde, in einem Kindordner des aktuellen Anwendungsstandorts zu sein. Etwas wie dieses:

Workbook resWB = Workbook.getWorkbook (neue Datei ("/ data/residual.xls")); Blatt resWS = resWB.getSheet (0);

Der Ordner "data" befindet sich in dem Ordner, von dem aus die Anwendung ausgeführt wird. Ich habe ein paar verschiedene Wege ausprobiert und versucht, den JEXcel Programmers Guide zu durchsuchen, aber ich bekomme immer Fehler und alle Beispiele im Guide verwenden einen Pfad "C:/...".

Gibt es trotzdem etwas zu tun?

+0

Nicht sicher, dass dies ein JExcel-Problem ist, scheint nur ein Problem herausfinden, wie Sie eine Datei mit der Java-Klasse Datei finden. In dem obigen Beispiel entfernen Sie den ersten Schrägstrich - ein führender Schrägstrich weist die Klasse an, im Stammverzeichnis nach 'Daten' zu suchen. –

+0

Ich würde einen temporären Ordner für Ihre Anwendung definieren und damit Ihre Dateien speichern/öffnen/bearbeiten. Vielleicht können Sie 2 Ordner haben, abhängig von Ihrem Betriebssystem. Ein anderer Ausweg kann darin bestehen, den Anwendungsordner als Hauptordner zu verwenden und einen temporären Ordner für die Dateiverwaltung zu verwenden. –

+0

Ja, ich habe das auch versucht, ich bekomme immer den Fehler "(Das System kann den angegebenen Pfad nicht finden)". Ist es möglich, dass dies nur ein Fehler ist, weil ich die Anwendung sofort durch Eclipse ausführen, und es ist noch nicht tatsächlich kompiliert? –

Antwort

0

Ich habe eine Konsolenanwendung gemacht, um Ihr unbestimmtes Relavite Pfad Problem zu testen. Das ist die Struktur meines Projekts:

MyProject 
+ src 
    + edu.home 
     + Main.java 
+ tmpFiles 

In Main.java Klasse, ich habe diesen einfachen Code:

public static void main(String[] args) { 
    File f = new File("tempFiles/newFile.txt"); 
    try { 
     f.createNewFile(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
} 

Wenn Sie das Programm ausführen, die Struktur für TMPFILES Ordner ist:

tmpFiles 
+ newFile.txt 

So können Sie einen Ordner erstellen, um Ihre Dateien in Ihrer Anwendung zu verwalten. Diese Dateien können die Excel-Dateien, Datendateien usw. sein, und der Pfad ist relativ zum Speicherort der Anwendung. Von den Eclipse-IDE jetzt arbeite ich, war die Basis Pfad C: \ Workspace, so dass die Datei hier erstellt wurde:

C:\Workspace\MyProject\tmpFiles 

Als ich das Projekt D verschoben habe: \ Java \ test \ anotherWorkspace , die Datei wurde hier erstellt: