2011-12-07 8 views
0

こんにちは私はページングを使用してテーブルに多くの電話通話データをユーザーに表示するmvcアプリケーションを作成しました。ここで話していたデータの量は、1カ月分のデータで、約95万レコードになる可能性があります。ユーザーは、データをエクスポートし、「すばらしい」明瞭な形式で表示する機能を求めました。私はちょうど私達が膨大な量のデータについて話しているように、このデータをエクスポートするのに最適なフォーマットが何であるか疑問に思っています!どんな考えも大歓迎です!MVC(CSV、XLS、PDFなど)を使用してエクスポートするのに最適なフォーマット

答えて

1

エクスポート形式は、本当にあなたがASP.NET MVC、Webフォームのように使用しているサーバ/クライアントサイドの技術とフレームワークに関連していない、Windowsフォームなどのクライアントアプリケーションを勝つ...

あなたが尋ねるべき最初の質問あなたの顧客はエクスポートされたデータで何をする必要がありますか?

データを編集またはフィルタリング/ピボットする場合は、csvは、これらのファイルをExcelで直接開いてそれらを使用して開くことができるため、おそらく良いオプションです。

単に基本的な検索機能と簡単な印刷機能を使用して読み書きしたい場合は、pdfが適切かもしれません。あなたは、データベースから取得DataReader/DataTableとのStringBuilderに追加するには、このすべては、サーバー側に発生する可能性がため

csv些細/簡単な解決策にエクスポートするには、実際には

は、あなたは、単にクライアントにダウンストリーム入れ子になっていますcsvのコンテンツをダウンロードするか、サーバーに保存してリンクを張ったり、サーバー側を圧縮して電子メールで送信したりすることができます。 PDFについては

ライブラリの多くは、これらのアクロバットリーダーのファイルを生成するためにそこにある...

2

私はあなたが小さなファイルサイズはCSVあるたい場合に使用できる最善のフォーマットだと思います。 CSVはそれに適した形式です。例えば、ExcelはCSVも開くことができます。

サーバのハードディスクに物理ファイルを作成せずにcsvファイルをダウンロードできるようにするには、次の操作を行います。

public ActionResult DownloadCsv(int id) 
{ 
    //var data = ... // get the data for the id 

    Response.Clear(); 
    Response.AddHeader("Content-Disposition", "attachment; filename=callData.csv"); 
    Response.ContentType = "text/csv"; 
    //write the column names 
    Response.Write("Id;PhoneNr"); 

    //write the data 
    foreach (var item in data) 
    { 
     Response.Write(String.Format("{0};{1}", item.Id, item.PhoneNr)); 
    } 

    Response.End(); 
    return null; 
} 

が、これはそれがあなたの要件に依存し

0

に役立ちます願っています。 CSV形式を使用するのは、お客様のExcelスプレッドシートに簡単にインポートできるためです。エクスポートされるデータのサイズなど、意識しておきたい技術的な問題がいくつかあります。 MVC固有の実装では、中間のビューを作成し、読み込みメッセージを表示し、javascriptのリダイレクト・ユーザーを使用して、データを取得してユーザーに返すコントローラ・アクションによって処理されるURLにリダイレクトします。アクションメソッドでは、データベースからデータを読み込んでCSVファイルに変換し、次に(Zip format)を使用してコンテンツを圧縮するビジネスクラスを呼び出します。アクションメソッドは、FileStreamResultの結果をユーザーに返します。

関連する問題