Microsoft.Reporting.WebForms不会将报告呈现为CSV

时间:2019-06-19 16:37:16

标签: c# csv reporting-services

我有一个LocalReport,该列试图将400个左右的列呈现给Excel,但是我使用的Microsoft.Reporting.WebForms版本仅支持256个列。因此,在Excel导出失败的情况下,我试图将其呈现为CSV格式:

try
{
    // render the report
    bytes = Report.Render(
            reportType,
            deviceInfo,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
}
catch (LocalProcessingException ex)
{
    // fall back on CSV rendering
    bytes = Report.Render(
            "CSV",
            deviceInfo,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
}

但是在执行此操作时出现错误:

  

指定的参数超出有效值范围。   参数名称:格式

因此,看来CSV是无效的报告格式-但我认为支持CSV吗?如何获取LocalReport以CSV格式呈现?

谢谢! :)

编辑:这是我为deviceInfo设置XML的地方:

switch (type)
{
    // TODO: implement other cases
    case ReportContentType.HTML:
        reportType = "HTML";
        break;
    case ReportContentType.Excel:
        reportType = "Excel";
        break;
    case ReportContentType.Word:
        reportType = "Word";
        break;
    case ReportContentType.PDF:
    default:
        reportType = "PDF";
        break;
}

//string deviceInfo = "<DeviceInfo/>";
string deviceInfo = "<DeviceInfo>" +
$"<OutputFormat>{reportType}</OutputFormat>" +
$"<PageWidth>{width}in</PageWidth>" +
$"<PageHeight>{height}in</PageHeight>" +
$"<MarginTop>{marginTop}in</MarginTop>" +
$"<MarginLeft>{marginLeft}in</MarginLeft>" +
$"<MarginRight>{marginRight}in</MarginRight>" +
$"<MarginBottom>{marginBottom}in</MarginBottom>" +
"</DeviceInfo>";

因此reportType将为Excel,因为这是用户要求的;我应该将其更改为CSV吗?其他当然只是数字。

0 个答案:

没有答案