2014-01-27 100 views
0

我試圖以zip格式導出RadGrid數據。爲此,首先我以Excel格式導出數據,然後嘗試壓縮它。但方法RadGrid.MasterTableView.ExportToExcel()的返回類型是void,所以我不能存儲此Excel表的結果以便將其作爲輸入傳遞給ZipPackage.以zip格式導出Telerik RadGrid數據

+0

難道你不能通過導出方法創建一個流,然後使用telerik自己的zip控件抓取流並壓縮它嗎? – TheTiger

+0

你是說要從ExporttoExcel方法創建流,但我無法從ExporttoExcel方法創建流 – user2864496

回答

0

據我所知,Radgrid沒有Zip導出方法。 你可以做的是:在Excel中導出文件,然後壓縮excel文件(或任何其他你已經導出的類型)。 這是我會怎麼做:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    foreach (GridColumn col in RadGrid1.MasterTableView.Columns) 
    { 
     //column you may like to excluded from the export process 
     if (col.UniqueName.Contains("EditCommandColumn") || 
      col.UniqueName.Contains("attachments") || 
      col.UniqueName.Contains("Upload") || col.UniqueName.Contains("Delete_col")) 
     { 
      col.Display = false; 
     } 
     else 
     { 
      col.Display = true; 
     } 

    } 
    foreach (GridFilteringItem item in RadGrid1.MasterTableView.GetItems(GridItemType.FilteringItem)) 
     item.Visible = false; 
    RadGrid1.ExportSettings.ExportOnlyData = true; 
    RadGrid1.ExportSettings.FileName = "YourDesiredFileName"; 
    RadGrid1.MasterTableView.ExportToExcel(); //this will be exported to the folder Download 
    Zip(); 
} 

private void Zip() 
{ 
    //here your method with your preferred library to zip the file exported from the radgrid 
    //save it where you need it, rename it as you like it and delete the original excel file 
} 
+0

我知道了Felice,但我想要做的是避免中間的Excel文件。如果我們使用RadGrid1.MasterTableView.ExportToExcel();彈出窗口會顯示選項,提示打開保存或取消。我不想保存並再次讀取此文件以對其執行壓縮操作。我的最終輸出應該是zip文件,不應該有任何其他中間文件。 – user2864496

+0

我明白,但這就是爲什麼我按鈕,而不是使用radgrid的嵌入式功能。上面的代碼在我的電腦上沒有彈出,中間文件可以在zip方法結尾刪除。祝你好運! – FeliceM

+0

好主意Felice - 雖然我認爲ExportToExcel()確實強制彈出? – TheTiger

0

我相信你可以嘗試鉤住OnGridExporting命令,然後做這樣的事情

using (FileStream fs = File.Create("path you want to save the file")) { 
      Byte[] info = System.Text.Encoding.Default.GetBytes(e.ExportOutput); 
      //save it on the server 
      fs.Write(info, 0, info.Length); 
     } 

把所有這一切都在try,catch來觀看對於文件權限問題和文件已存在的問題。

+0

您是否確實獲得了寫入文件的導出命令(無論類型)?我無法識別文件名設置。 – Allen