如何使报表查看器控件以 xls 格式而不是 xlsx 格式导出?

How to make report viewer control to export in xls format instead of xlsx?

我们的应用程序需要能够从报表查看器控件生成 .xls 格式。但是,当我尝试导出到 Excel 时,它只给了我两个选项(.xlsx 和其他文件)。

为了生成.xls,我们需要使用'Other files'选项并设置为.xls,但这会导致文件格式和扩展名不匹配,用户将始终获得warning dialog box 尝试打开该文件时。我怀疑它只是将文件重命名为 .xls 但其格式仍然是 .xlsx。

是否可以为 Report Viewer 控件将 Excel 类型文件的默认导出格式设置为 .xls

图 1:报表查看器显示要导出到

中的 3 种文件类型

图 2:报表查看器在选择文件时默认为 .xlsx 格式。宁愿它默认为 .xls 格式而不是

  1. 处理报表导出事件
  2. 使用 ReportViewer 的 ExportDialog() 方法并使用 ListRenderingExtensions() 方法查看扩展列表 可用
  3. 设置 e.Cancel = true 以防止重复此事件

代码:

    private void reportViewerControl_ReportExport(object sender, ReportExportEventArgs e)
    {
        if(e.Extension.LocalizedName.ToUpper().Equals("EXCEL"))
        {
            reportViewerControl.ExportDialog(reportViewerControl.LocalReport.ListRenderingExtensions()[0]);
            e.Cancel = true;
        }
    }