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

3
请告诉我,我如何从ReportViewer(v.11)导出报告(rdlc)到.xls文件?
通过单击导出 -> Excel按钮,此版本的查看器可以将其导出为.xlsx文件。在这种情况下,SaveFileDialog将打开,我只能选择xlsx格式。但是我也需要以.xls格式保存报告。
对于我的英语表达不好,非常抱歉-我刚开始学习它。
谢谢!
1个回答

2

我找到了答案,这里分享给大家...

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);
        }
    }
}

我希望这能帮助到某位读者 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接