我有一个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吗?其他当然只是数字。