为什么我的Excel RDLC数据中的所有数据都从第2行开始?

时间:2015-03-24 13:32:17

标签: c# excel rdlc

使用RDLC生成的Excel报表的列标题似乎始于ROW TWO。但是,我需要数据从ROW ONE开始,但我似乎无法弄明白。

我的问题:
有没有办法强制数据行从ROW ONE开始?

RENDERED REPORT看起来像:
如您所见,数据从第2行开始......

enter image description here

我的报告设计师看起来像:
如您所见,列标题位于设计器顶部,字段如下所示。当然,标题和图像位于此区域之上,与数据结果视图区域无关。 enter image description here

我的初始代码看起来像:
我可以发布更多代码。但是,这是“本地驾驶员报告”中唯一的特定内容。出口。

public ActionResult Export(string id)
{
    var format = !string.IsNullOrEmpty(id) ? id : SsrsExportFormat.Image.ToString();
    var localDrivers = from x in LocalDriverInfo
                       select new
                       {
                           Title = x.Title.TranslatedName,
                           x.Driver.ConfirmedWith,
                           x.Driver.CurrentState,
                           x.Driver.Description,
                           x.Driver.DesiredState,
                           x.Driver.LocalDriverId,
                           x.Driver.LocalDriverTitleId
                       };

    var lsDs = new List<ReportDataSource> { ReportGenerator.GetDataSource(localDrivers, "LocalDrivers"), ReportGenerator.GetDataSource(GetReportResource(), "Resource") };
    var lsDsResult = lsDs.ToList();
    var message = string.Format("Controller: LocalDrivers, Action: Export(id), "
                              + "Parameters: [id: {0}, lsDs count: {1}, format: {2}]"
                              , id, lsDsResult.Count, format);

    TraceHandler.AddEntry(message, TraceHandler.TraceTypes.Information);

    //The DeviceInfo settings should be changed based on the reportType
    //http://msdn2.microsoft.com/en-us/library/ms155397.aspx            
    return GetRenderedReport(format, "~/Reports/LocalDrivers/LocalDrivers.rdlc", lsDs, "Local Drivers", ReportGenerator.GetDeviceInfoLetterLandscape(format), null);
}

2 个答案:

答案 0 :(得分:2)

确保桌子的顶部和左侧绝对没有空白区域。任何空格都会产生额外的行。

答案 1 :(得分:0)

事实证明,DEVICE INFO设置是这个特定问题的答案。

设备信息XML应该看起来像:
创建“本地报告”时,DeviceInfo会传递到ServerReport.Render method

<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>

代码看起来像:
注意最后一行......

var deviceInfo = new StringBuilder();
deviceInfo.Append("<DeviceInfo>");
deviceInfo.AppendFormat("<OutputFormat>{0}</OutputFormat>", format);
deviceInfo.AppendFormat("<PageWidth>{0}</PageWidth>", pageWidth);
deviceInfo.AppendFormat("<PageHeight>{0}</PageHeight>", pageHeight);
deviceInfo.AppendFormat("<MarginTop>{0}</MarginTop>", marginTop);
deviceInfo.AppendFormat("<MarginLeft>{0}</MarginLeft>", marginLeft);
deviceInfo.AppendFormat("<MarginRight>{0}</MarginRight>", marginRight);
deviceInfo.AppendFormat("<MarginBottom>{0}</MarginBottom>", marginBottom);
deviceInfo.AppendFormat("<SimplePageHeaders>{0}</SimplePageHeaders>", isSimplePageHeaders);
deviceInfo.Append("</DeviceInfo>");