报表设计器下载地址
https://www.microsoft.com/zh-cn/download/details.aspx?id=53613
或者从vs扩展插件安装

打开报表设计器,插入矩阵表格(只有这个才能支持表头单元格合并)

在列单元右建,插入行,根据实际需要添加,一般大于等2行。

在数据上方右键,插入列,左对齐或右框线都可以,根据实际列数添加。

选中需要合的单元格,进行合并。

此时预览数据只有一行,不符合实际的业务需求

在行上右键,选择表达式

录入公式:=Rownumber(Nothing)

再次预览数据正常

此行号如果不需要,可以把此列隐藏

再次点运行,进行预览


可以根据实际需要导出pdf/word/excel等格式

代码导出
/// <summary>
/// 报表打印功能
/// </summary>
/// <param name="filter"></param>
/// <param name="fileType"></param>
/// <returns></returns>
private byte[] GetFileByte(ReportDataSource reportData, string fileType)
{
Stream reportDefinition = System.IO.File.OpenRead("Rpt/报文件.rdl");
LocalReport report = new LocalReport();
report.LoadReportDefinition(reportDefinition);
var dataSets = report.GetDataSourceNames();
report.DataSources.Add(new ReportDataSource(report.GetDataSourceNames()[0], reportData));
var p = report.GetParameters();
for (int i = 0; i < p.Count; i++)
{
report.SetParameters(new[] { new ReportParameter(p[i].Name, values[i]) });
}
//PDF Excel
byte[] fileByte = report.Render(fileType);
reportDefinition.Close();
return fileByte;
}
根据前端用户的搜索条件后台过滤数据,导出pdf文件,其它格式,自行修改格式即可
[HttpPost]
public IActionResult GetPdf(FilterViewModel filter)
{
byte[] pdf = GetFileByte(filter, "pdf");
return File(pdf, "application/pdf");
}


















