2015-09-01 157 views
3

我想將ReportViewer中的數據導出爲LocalReport中的CSV格式。 我已經通過this文章在MSDN論壇上說,本地報告不支持CSV呈現。但這可以在服務器報告中完成,但我不能使用服務器報告。導出爲Winform的ReportViewer的LocalReport中的CSV

有什麼辦法可以在LocalReport中向ReportViewer添加CSV導出擴展?

回答

2

選項1 - 自定義導出到Excel工具欄按鈕

手柄ReportExport事件報告查看器中,如果選擇了擴展的Excel,做您導出爲CSV代替。

private void reportViewer1_ReportExport(object sender, 
    Microsoft.Reporting.WinForms.ReportExportEventArgs e) 
{ 
    if (e.Extension.Name == "EXCELOPENXML") 
    { 
     //Export your data to csv here  
     e.Cancel = true; 
    } 
} 

選項2 - 添加自定義按鈕要的ReportViewer工具欄

添加自定義按鈕,報表查看器的工具欄和分配處理器點擊它時,做你的出口在這裏CSV:

private void ReportForm_Load(object sender, EventArgs e) 
{ 
    //Load your data from wherever your data is 
    //For example using Entity Framework: 
    var db = new TestDBEntities(); 
    var data = db.Categories.ToList(); 

    //Set data to report 
    this.CategoryBindingSource.DataSource = data; 

    this.reportViewer1.RefreshReport(); 

    //Add your button to Toolbar of ReportViewr 
    ToolStrip toolStrip = (ToolStrip)reportViewer1.Controls.Find("toolStrip1", true)[0]; 
    toolStrip.Items.Add(new ToolStripButton("Export To CSV", 
    null /*image*/, ExportToCSV_Click)); 
} 

void ExportToCSV_Click(object sender, EventArgs e) 
{ 
    //Export your data to csv here  
} 

注:

無論你婉t將數據導出到csv,您可以使用您傳遞的數據源的數據進行報告。

+0

是的,這是可以做到的,但我被限制使用ReportViewer。 – Sameer

+0

我提供的解決方案也是一個ReportViewer解決方案:) –