用npoi创建单元格的边框

时间:2012-08-20 10:21:46

标签: export-to-excel npoi

我有一个Excel文件作为Excel工作的模板,我想以编程方式用数据填充此模板。

当我创建一行和一个附带的单元格并为新创建的单元格设置边框时,将为整个工作表分配此边框。当然,我只希望单个细胞具有该边界。这是代码:

string path = Application.StartupPath + "\\" + "Excels\\myTemplate.xls";
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);

HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
HSSFSheet sheet = templateWorkbook.GetSheet("sheet2");

int rowIndex = 3;
var row = sheet.CreateRow(rowIndex);

int i = 0;
string zoneNo;
string SubsidiaryCode = string.Empty;
foreach (DataRow r in dtBill.Rows)
{
  SubsidiaryCode = (r["SubsidiaryCode"].ToString().Trim());
  zoneNo = (r["ZoneNO"].ToString().Trim());

  HSSFCell cell = (HSSFCell)row.CreateCell(i);
  cell.SetCellValue("Zone " + zoneNo + "-code :" + SubsidiaryCode);
  cell.CellStyle.BorderBottom = HSSFCellStyle.BORDER_MEDIUM;
  i++;

  row.CreateCell(i).SetCellValue(r["Date"].ToString().Trim());
  row.CreateCell(i).CellStyle.BorderBottom = HSSFCellStyle.BORDER_MEDIUM;
  i++;

  rowIndex++;
  row = sheet.CreateRow(rowIndex);
  i = 0;
}

sheet.ForceFormulaRecalculation = true;

1 个答案:

答案 0 :(得分:11)

我找到了答案

var row = sheet.CreateRow(rowGlobal);


HSSFCellStyle style1 = templateWorkbook.CreateCellStyle();
        style1.BorderRight = HSSFCellStyle.BORDER_MEDIUM;
        style1.BorderBottom = HSSFCellStyle.BORDER_MEDIUM;
        style1.Alignment = HSSFCellStyle.ALIGN_CENTER;
        //style1.FillPattern = HSSFCellStyle.SOLID_FOREGROUND;
        //style1.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.GREEN.index;
        HSSFFont font1 = templateWorkbook.CreateFont();
        //font1.Color = NPOI.HSSF.Util.HSSFColor.BROWN.index;
        font1.FontName = "B Nazanin";
        style1.SetFont(font1);

cell = row.CreateCell(2);
           cell.SetCellValue(0);
           cell.CellStyle = style1;