2011-12-07 39 views
0

大家好,我寫一個MVC應用程序,它會在一個表中顯示大量電話數據到用戶使用分頁。這裏討論的數據量是一個月的數據,可能是大約95萬條記錄。用戶已經要求能夠導出數據並以「很好」的清晰格式查看數據。我只是想知道什麼是最好的格式來導出這些數據,因爲我們正在談論大量的數據!任何想法將不勝感激!最佳格式導出到使用MVC(CSV,XLS,PDF等)

回答

1

導出格式是不是真的涉及到服務器/客戶端技術和框架您使用的是像ASP.NET MVC,WebForms的,Windows窗體贏得客戶端應用程序等等

你應該問的第一個問題您的客戶是他需要處理導出的數據的工具。

如果他們想要編輯或過濾/透視數據,csv可能是一個不錯的選擇,因爲他們可以直接用excel打開這些文件並使用這些文件。

如果他們只是想讀取和存檔基本的搜索功能和易於打印,pdf可能會更合適。

實際上出口到 csv瑣碎/簡單的解決方案

是一個嵌套在DataReader/DataTable您從數據庫中獲取並追加到StringBuilder的,這一切都可能發生服務器端,那麼你只是流下來到客戶端csv內容下載或將其保存在服務器上並給出鏈接,或者將其壓縮到服務器端並通過電子郵件發送......這一切取決於您的要求。

PDF有很多圖書館在那裏產生的Acrobat Reader軟件的文件...

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重定向用戶到一個由Controller Action處理的url,該Controller將負責獲取數據並將其返回給用戶。在操作方法中,您應該調用您的業務類,它將從數據庫讀取數據,轉換爲CSV文件,然後使用(Zip format)對內容進行壓縮。操作方法然後可以將結果返回給用戶FileStreamResult