0

データのテーブルがあり、エクスポート機能が必要でした。このアプリケーションはWebで実行されるため、csvファイルを作成してから、通常のダウンロードオプションを提供(開くかオプションとして保存)します。現在、CSVライターを使用しています。
ここで問題となっている行はRuntime.getRuntime().exec("export.csv");、下部にリストされているエラーを示しています。これを行うにはどうすればよいですか?

これがボタンに関連付けられたアクションです

Action exportData = new Action() {
    private static final long serialVersionUID = -7803023178172634837L;

    @Override   
    public void execute(UIContext uic, ActionEvent event) {

        try{       
            CSVWriter writer = new CSVWriter(new FileWriter("export.csv"), '\t');
            int i = 0;
            while (i < forExport.getTotalCount()){
                String[] entries = {
                    forExport.getSearchResults().get(i).getName().getGivenNames() + forExport.getSearchResults().get(i).getName().getSurname(),
                    forExport.getSearchResults().get(i).getId()
                };
                writer.writeNext(entries);
                i++;
            }  
            writer.close();
            Runtime.getRuntime().exec("export.csv");  
        }catch(Exception e){
            system.out.print(e);
        }
    }
};

エラーが発生するjava.io.IOException: Cannot run program "export.csv": CreateProcess error=193, %1 is not a valid Win32 applicationDEBUG

注:Excelで自動的に開くのは望ましくありません。保存するか、開くかを選択できます。

4

3 に答える 3

1

なぜあなたが何かを実行しているのか理解できません。これはサーバーコードです。サーバーでExcelを実行する必要はまったくありません。content-dispositionヘッダーとともに、ファイルをブラウザーに書き戻したいとします。

于 2012-10-03T05:19:07.587 に答える
0

試してみてください

Runtime.getRuntime().exec("excel.exe export.csv"); 

export.csvは有効なWindowsコマンドではありません。

于 2012-10-03T04:47:17.110 に答える
0

.csvファイルは、データを保持するために使用されるコンマ区切りの値ファイルです。execコマンドのパラメータは、.csvファイルを開くための文字列としてのコマンドです。ただし、コマンド文字列で、ランタイムが.csvファイルを開こうとするプログラムを指定していません。

.csvファイルは実行可能ではないため、コマンド文字列パラメータで、..csvファイルを開きたいプログラム名を指定します。

于 2012-10-03T04:53:41.107 に答える