繁体   English   中英

如何从Microsoft.Reporting.WinForms.ReportViewer v11将报告导出到.xls文件

[英]How to export report to .xls file from Microsoft.Reporting.WinForms.ReportViewer v11

请告诉我,如何将报表(rdlc)从ReportViewer(v.11)导出到.xls文件?

通过单击导出-> Excel按钮,此版本的查看器可以导出到.xlsx文件。 在这种情况下,将打开SaveFileDialog,而我只能选择xlsx格式。 但是我也需要将报告保存为.xls格式。

对不起,我的英语-我才刚开始学习它。

谢谢!

我找到答案了。 我再把它放在这里...

第11版的ReportViewer可以将报告导出为.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);
        }
    }
}

我希望它可以帮助某人:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM