0

JExcel を使用して、Java アプリケーションで Excel ワークシートに書き込みます。ファイルを作成または読み取るとき、明確なパスを使用することしかできませんでした:

ワークブック samWB = Workbook.getWorkbook(new File("C:/eclipse/samples.xls")); シート samWS = samWB.getSheet(0);

ただし、アプリケーションを取得してサーバー上の別の場所に配置し、読み書きするデータ ファイルを現在のアプリケーションの場所の子フォルダーに配置できるようにする必要があります。このようなもの:

ワークブック resWB = Workbook.getWorkbook(new File("/data/residual.xls")); シート resWS = resWB.getSheet(0);

アプリケーションが実行されているフォルダー内のフォルダー「データ」。いくつかの方法を試し、JExcel Programmers ガイドを検索してみましたが、エラーが発生し続け、ガイドのすべての例でパス "C:/..." が使用されています。

とにかくこれを行うことはありますか?

4

1 に答える 1

0

あなたの無期限の relavite パスの問題をテストするコンソール アプリケーションを作成しました。これは私のプロジェクトの構造です:

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

Main.java クラスには、次の簡単なコードがあります。

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 フォルダーの構造は次のようになります。

tmpFiles
+ newFile.txt

そのため、アプリケーションでファイルを管理するためのフォルダーを作成できます。これらのファイルは Excel ファイル、dat ファイルなどで、パスはアプリケーションの場所からの相対パスになります。私が現在取り組んでいる Eclipse IDE から、ベース パスは C:\Workspace だったので、ファイルは次の場所に作成されました。

C:\Workspace\MyProject\tmpFiles

プロジェクトを D:\Java\test\anotherWorkspace に移動すると、ファイルは次の場所に作成されました。

D:\Java\test\anotherWorkspace\MyProject\tmpFiles
于 2012-03-23T19:56:18.527 に答える