0

私はこのアプリを持っています。取り組んでいます。ユーザーはJTableインスタンスを表示できると同時に、Excel 形式で保存したり、印刷したりすることができます。ファイル名とファイルを配置する場所をユーザーに尋ね、その場所にファイルを保存します。アプリはローカル サーバー (tomcat) で実行され、別のワークステーションで他のユーザーによって使用されます。テーブルをExcelファイルに変換する際にPOI APIを使用していますが、うまく機能します。

現在の問題はFileOutputStream()、他のワークステーション用のファイルをまったく作成しないことです。現在アプリを開発しているワークステーションである単一のワークステーションにファイルを作成/保存するだけです。解決策を見つけるのに十分長い間検索しましたが、まだ何も見つからないので、皆さんに助けを求めようとしています. 私はコードを含めます。

public class ReportToExcel
{
    //file returned comes from the user from antoher function.
    public void exportTable(JTable table, File file) throws IOException {
        HSSFWorkbook report = new HSSFWorkbook();
        HSSFSheet report_sheet = report.createSheet("report_sheet");
        HSSFRow rowHead = report_sheet.createRow((int)0);
        TableModel model = table.getModel();
        FileOutputStream reportOut = new FileOutputStream(file.getAbsolutePath());
        System.out.println("table to excel "+table.getName());

for(int x=0; x < model.getColumnCount(); x++) {
        rowHead.createCell((int)x).setCellValue(model.getColumnName(x));
        report_sheet.autoSizeColumn((int)x);
        System.out.println(x+". "+model.getColumnName(x));
    }

for(int i=1; i< model.getRowCount(); i++) {
            HSSFRow row = report_sheet.createRow((int)i);
            for(int j=0; j < model.getColumnCount(); j++) {
                row.createCell((int)j).setCellValue(model.getValueAt(i,j).toString());
                System.out.println(i+". "+model.getValueAt(i,j).toString());
            }
           }
       report.write(reportOut);
        reportOut.close();
        System.out.println("write out to: " + file.getAbsolutePath());
    }
}
4

3 に答える 3

1

すでに答えを見つけました。NoClassDefFoundエラーの場合、ワークステーションは、私が間違いなく見落としていたPOIAPIのクラスパスにアクセスするための特権を持っている必要があります。

于 2012-05-31T10:05:21.937 に答える
0

各ワークステーションのローカル マシンではなく、サーバーに出力を保存しようとしましたか?

于 2012-05-25T05:48:40.950 に答える
0

あなたからの重要な声明は、コードがワークステーションでのみ機能するということだと思います。多くの場合、問題はファイル/ディレクトリのアクセス許可に関連しています。通常のユーザーは、開発者よりも権限が少なくなります。

また、パスが疑わしい場合に備えて、file.getAbsolutePath() への出力を教えていただけると助かります。

パスは、ユーザーがファイルを作成/変更するための安全な場所である必要があります。

于 2012-05-25T05:39:20.557 に答える