You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Stimulsoft报表软件中显示DataGridView数据并创建表格报表?

解决Stimulsoft报表配置DataGridView数据源的问题

我来帮你搞定Stimulsoft报表配置DataGridView数据源的问题,结合你的代码一步步梳理:

首先你的C#代码已经把DataGridView的数据转换成了DataTable并注册到报表中,核心问题是在Stimulsoft设计器里正确配置对应数据源,让报表能识别你传入的内存数据。

步骤1:在Stimulsoft设计器中加载你的.mrt报表文件

打开Stimulsoft Reports Designer,加载你创建的DaneBandiReport.mrt文件。

步骤2:配置内存数据源(对应C#传入的DataTable)

在设计器左侧的Data面板操作:

  • 右键点击Data Sources,选择「Add Data Source」。
  • 选择「DataSet」类型,点击下一步;因为我们用的是内存数据而非直接连接数据库,所以选择「New DataSet」,命名建议和你C#里的DataSet名称一致(比如DaneBandiTable)。
  • 右键点击新建的DataSet,选择「Add Data Table」,给这个数据表起个明确的名字(比如DaneBandiData,同时记得修改C#代码里的DataTable名称保持对应)。
  • 给这个DataTable添加列:列名要和你DataGridView的列名完全一致(Stimulsoft区分大小写),数据类型选择String(和你C#代码里的typeof(string)匹配)。

步骤3:设计报表布局

把Data Sources面板里的字段拖拽到报表的Data Band(数据带)中,调整好每个字段的位置和样式,完成打印布局设计。

步骤4:优化你的C#代码细节

你的代码逻辑没问题,但有几个小细节可以优化,避免踩坑:

  1. 给DataTable起明确名称,方便数据源对应:
    DataTable table = new DataTable("DaneBandiData"); // 和报表里的数据表名称一致
    
  2. 处理DataGridView的空白行和null值:
    // 跳过DataGridView最后一行的空白新行
    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
    {
        table.Rows.Add();
        for (int j = 0; j < dataGridView1.Columns.Count; j++)
        {
            // 避免null值导致报错,转成空字符串
            table.Rows[i][j] = dataGridView1[j, i].Value?.ToString() ?? ""; 
        }
    }
    
  3. 注册整个DataSet到报表,更贴合Stimulsoft的数据源结构:
    report.RegData(Ds); // 替换原来的report.RegData(table);
    

步骤5:测试报表

保存报表设计后,运行你的C#程序点击按钮,报表就能正确加载并显示DataGridView里的数据了。

另外关于你提到的多数据库场景:如果需要同时使用数据库数据和DataGridView数据,只需要在Stimulsoft设计器里分别配置数据库数据源和内存数据源,C#代码中同时注册对应的数据集即可。


内容的提问来源于stack exchange,提问作者kaziveh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:54:06