npoi不会在合并细胞附近添加细胞

时间:2015-05-10 00:55:53

标签: c# excel apache-poi npoi

您好我使用npoi(Apache Poi到.NET的端口)进行多次报告

我需要像这样Example

制作一个Excel

x1,x2,x3 ..在第15行中动态添加 Level | 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;
}

但我得到了这个

example 2

如图所示:

  • 每个范围的第一个单元格不显示边框
  • 第二行底部未显示

我做了一个测试

更改rowBottom

rowBottom = (HSSFRow)sheet.CreateRow(nrow + 1);

rowBottom = (HSSFRow)sheet.CreateRow(nrow + 2);

而rowBottom现在在报告中

example 3

但我需要一起

不,我做错了,还有另外一个问题,在Excel中,当连续更改这些丢失边框时

example 4

修改

我评论

//cell = (HSSFCell)row.CreateCell(ncol + 1);
//cell.SetCellValue(plan.nombre);  

并使用rowBottom = (HSSFRow)sheet.CreateRow(nrow + 1);进行调整 example 5

范围有很好的边框,但仍然缺少底行

0 个答案:

没有答案