C# npoi不在合并单元格附近添加单元格
您好,我使用npoi(ApachePOI到.NET的端口)制作了许多报告 我需要做一个像这样的Excel 其中x1,x2,x3。。动态添加到第15行C# npoi不在合并单元格附近添加单元格,c#,excel,apache-poi,npoi,C#,Excel,Apache Poi,Npoi,您好,我使用npoi(ApachePOI到.NET的端口)制作了许多报告 我需要做一个像这样的Excel 其中x1,x2,x3。。动态添加到第15行级别| Name | CT | CH | C中,并对每个项目重复 我有这个密码 int nrow = 13; row = (HSSFRow)sheet.CreateRow(nrow); rowBottom = (HSSFRow)sheet.CreateRow(nrow + 1); ncol = 0; foreach (Plan plan in p
级别| Name | CT | CH | C
中,并对每个项目重复
我有这个密码
int nrow = 13;
row = (HSSFRow)sheet.CreateRow(nrow);
rowBottom = (HSSFRow)sheet.CreateRow(nrow + 1);
ncol = 0;
foreach (Plan plan in planesUltimos) {
var i = ncol + 1;
cell = (HSSFCell)rowBottom.CreateCell(i++);
cell.SetCellValue("Level");
cell = (HSSFCell)rowBottom.CreateCell(i++);
cell.SetCellValue("Name");
cell = (HSSFCell)rowBottom.CreateCell(i++);
cell.SetCellValue("CT");
cell = (HSSFCell)rowBottom.CreateCell(i++);
cell.SetCellValue("CH");
cell = (HSSFCell)rowBottom.CreateCell(i);
cell.SetCellValue("C");
var cellRange= new CellRangeAddress(nrow, nrow, ncol + 1, ncol + 5);
sheet.AddMergedRegion(cellRange);
HSSFRegionUtil.SetBorderBottom(NPOI.SS.UserModel.BorderStyle.Medium, cellRange, sheet, wb);
HSSFRegionUtil.SetBorderTop(NPOI.SS.UserModel.BorderStyle.Medium, cellRange, sheet, wb);
HSSFRegionUtil.SetBorderRight(NPOI.SS.UserModel.BorderStyle.Medium, cellRange, sheet, wb);
HSSFRegionUtil.SetBorderLeft(NPOI.SS.UserModel.BorderStyle.Medium, cellRange, sheet, wb);
cell = (HSSFCell)row.CreateCell(ncol + 1);
cell.SetCellValue(plan.nombre);
ncol += 5;
}
但我明白了
如图所示:
- 每个区域的第一个单元格不显示边框
- 第二排底部未显示
rowBottom = (HSSFRow)sheet.CreateRow(nrow + 1);
到
rowBottom现在在报告中
但我需要一起
不,我做错了,还有一个问题,在Excel中,当更改一行中的标记时,这些丢失边界
编辑
我评论
//cell = (HSSFCell)row.CreateCell(ncol + 1);
//cell.SetCellValue(plan.nombre);
并使用rowBottom=(HSSFRow)sheet.CreateRow(nrow+1)对其进行tun代码>
范围有很好的边界,但仍然缺少最下面的一行我建议您去掉CreateRow
和CreateCell
,因为这些方法会添加新的范围。您的目标是对现有单元格/行执行过程。我不知道NPOI中的哪个命令将现有范围设置为变量,但我看到您成功地使用了CellRangeAddress
。关于第二行没有寄宿生,我看到var cellRange=newcellRangeAddress(nrow,nrow,ncol+1,ncol+5)
只有一行,这就是为什么没有得到边界。
//cell = (HSSFCell)row.CreateCell(ncol + 1);
//cell.SetCellValue(plan.nombre);