2012-03-23 9 views
0

JExcelを使用して、JavaアプリケーションでExcelワークシートに書き込みます。JExcelを使用したワークブックを無期限のパスに開いて保存できますか?

ワークブックsamWB = Workbook.getWorkbook(新しいファイル(「C:/eclipse/samples.xls」))を作成したり、ファイルから読み込むとき、私は唯一の明確なパスを使用して、そうすることができました。 シートsamWS = samWB.getSheet(0);

しかし、私は自分のアプリケーションをサーバー上の別の場所に置くことができ、私が読んでいるデータファイルと、現在のアプリケーションの場所の子フォルダに書き込むデータファイルを用意する必要があります。このようなもの:

ワークブックresWB = Workbook.getWorkbook(新規ファイル( "/ data/residual.xls")); シートresWS = resWB.getSheet(0);

"data"フォルダは、アプリケーションが実行されているフォルダの内側にあります。いくつかの方法で試してみましたが、JExcel Programmersのガイドを調べてみましたが、エラーが発生していて、ガイドのすべての例でパス "C:/ ..."を使用しています。

どうすればよいですか?

+0

これはJExcelの問題であるかどうかはわかりませんが、java Fileクラスを使用してファイルを検索する方法の問題のようです。上記の例では、最初のスラッシュを削除します。先頭のスラッシュは、クラスにルートディレクトリの 'data'を検索するように指示します。 –

+0

私はあなたのアプリケーションの一時フォルダを定義し、それを使ってファイルを保存/開く/何でもするのに使います。たぶん、OSに応じて2つのフォルダを持つことができます。別の方法として、アプリケーションフォルダをメインフォルダとして使用し、ファイル管理のために一時フォルダを使用することができます。 –

+0

はい、私も同様に試してみましたが、 "(システムは指定されたパスを見つけることができません)"というエラーが出ています。 Eclipseを使用して今すぐアプリケーションを実行しているため、実際にはコンパイルされていない可能性がありますか?ところで –

答えて

0

コンソールアプリケーションを作成して、不確定リレーライトパスの問題をテストしました。これが私のプロジェクトの構造である:

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(); 
} 

あなたがプログラムを実行すると、TMPFILESフォルダの構造は次のとおりです:

Main.javaクラスで
MyProject 
+ src 
    + edu.home 
     + Main.java 
+ tmpFiles 

、私はこの単純なコードを持っています

tmpFiles 
+ newFile.txt 

したがって、アプリケーションでファイルを管理するためのフォルダを作成できます。これらのファイルは、Excelファイル、datファイルなどであり、パスはアプリケーションの場所に相対的です。私は今働いているのEclipse IDEからは、ベースパスはCでした:\ワークスペース、ファイルがここに作成されましたので:

私はDにプロジェクトを移動した
C:\Workspace\MyProject\tmpFiles 

:\ Javaの\テスト\のanotherWorkspace

D:\Java\test\anotherWorkspace\MyProject\tmpFiles 
関連する問題