2015-10-09 58 views
1

導出爲.xls文件請告訴我,如何從ReportViewer(v.11)將報告(rdlc)導出到.xls文件?如何將報告從Microsoft.Reporting.WinForms.ReportViewer v11

此版本的查看器可以通過單擊導出 - > Excel按鈕導出到.xlsx文件。在這種情況下,SaveFileDialog將會打開,我只能選擇xlsx格式。但我也需要以.xls格式保存報告。

對不起,我的英語 - 我剛開始學習它。

謝謝!

回答

0

我找到答案。我把它放在另一個...

ReportViewer的第11版本可以導出報告爲.xls格式,但是,默認情況下,這種可能性是隱藏的。

一組支持的導出格式,您可以使用ReportViewer.LocalReport.ListRenderingExtensions()實例方法查看。但是接收到的元素的所有屬性都是隻讀的(包括Visible)。

要更改元素的可見性,您應該使用反射。例如:

/// <summary> 
/// Set visibility of specified by name RenderingExtension to setted value 
/// For example, name of Excel (.xls) extension is "Excel" 
/// </summary> 
/// <param name="reportViewer">Instance of ReportViewer control</param> 
/// <param name="extensionName">Extension name (for example: "Excel")</param> 
/// <param name="visible">Visibility</param> 
private void SetVisibilityOnRenderingExtension(ReportViewer reportViewer, string extensionName, bool visible) 
{ 
    var renderingExtension = reportViewer.LocalReport.ListRenderingExtensions().FirstOrDefault(e => e.Name == extensionName); 

    if (renderingExtension != null) 
    { 
     FieldInfo info = renderingExtension.GetType().GetField("m_isVisible", BindingFlags.NonPublic | BindingFlags.Instance); 
     if (info != null) 
     { 
      info.SetValue(renderingExtension, visible); 
     } 
    } 
} 

我希望它可以幫助別人:)