npoi合并后怎么给单元格赋值?合并取得值一直是第一个单元格的值

-一个大坑 2017-08-21 11:22:15

//填充内容
for (int i = 0; i < dt.Rows.Count; i++)
{
dataRow = sheet.CreateRow(i + 1); //跳过列名
for (int j = 0; j < dt.Columns.Count; j++)
{
ICell icell = dataRow.CreateCell(j);
icell.SetCellValue(dt.Rows[i][j].ToString());
icell.CellStyle = style; //给单元格赋值和样式
if (i + 1 != dt.Rows.Count && key != 999)
{
if (dt.Rows[i][key].ToString() == dt.Rows[i + 1][key].ToString())
{
if (dt.Rows[i][j].ToString() == dt.Rows[i + 1][j].ToString())
{
sheet.AddMergedRegion(new CellRangeAddress(i + 1, i + 2, j, j));
}
else
{
if (string.IsNullOrEmpty(cellstr))
{
cellstr = dt.Rows[i][j].ToString();
row = i + 1;
}
cellstr += "\n" + dt.Rows[i + 1][j].ToString();
sheet.AddMergedRegion(new CellRangeAddress(i + 1, i + 2, j, j));
sheet.CreateRow(row).CreateCell(j).SetCellValue(cellstr); //就是这句有问题。我取合并时第一个单元格的坐标,然后赋值。上面的icell 赋值和样式就都没了
}

}
else
{
cellstr = string.Empty;
row = 0;
}
}
}
}
...全文
1454 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 2017-09-11
  • 打赏
  • 举报
回复
-一个大坑 2017-09-06
  • 打赏
  • 举报
回复
我想不显示table页面直接调用打印机打印。不要这句$("#disposeDiv").empty().append(data); bdhtml = 什么??

        $(function () {
            $("#btnPrint").click(function () {
                $.ajax({
                    url: '/SCRP0101/GetPrintSendCar',
                    type: "GET",
                    data: {},
                    success: function (data) {
                        $("#disposeDiv").empty().append(data); //加这句就会打开table页面,不加接收不到table的返回值,打印是空白
                        bdhtml = window.document.body.innerHTML;
                        sprnstr = "<!--startprint-->";
                        eprnstr = "<!--endprint-->";
                        prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);
                        prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
                        window.document.body.innerHTML = prnhtml;
                        window.print();
                    },
                    error: function (msg) {
                        alert('失败了,可能后台报错');
                    },
                });
            })
        });
-一个大坑 2017-08-21
  • 打赏
  • 举报
回复
sheet.CreateRow(row).CreateCell(j).SetCellValue(cellstr); 这句刚开始我用 icell.SetCellValue(cellstr);来赋值,合并永远只有第一条数据,后面的就都没了
-一个大坑 2017-08-21
  • 打赏
  • 举报
回复

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧