2017-01-16 7 views
0

私は行に境界線を追加するには、次のコードを持っている:境界線が一番上の行(Asposeセル)に適用されないのはなぜですか?

Range _range; 
_range = customerWorksheet.Cells.CreateRange("A1", "P1"); 
_range.SetOutlineBorders(CellBorderType.Hair, Color.Black); 

...しかし、それは働いていない - 国境はその一番上の行(行「1」)に表示されません:

enter image description here

どうして、これらの罫線を追加するにはどうすればよいのですか?ここで

は、一つのセルが追加されたかを示す、その一番上の行のコードの抜粋です:

Cell PAItemCell = customerWorksheet.Cells[rowToPopulate, PAITEMCODE_COL]; 
PAItemCell.PutValue(frbdbc.PAItemCode, true); 
var paiStyle = PAItemCell.GetStyle(); 
paiStyle.Font.Name = fontForSheets; 
paiStyle.IsTextWrapped = false; 
PAItemCell.SetStyle(paiStyle); 

そして、ここでは(理論的には、それがために働くべきで国境をシートのデータ部分に付加されている方法です一番上の行も必要ありません):

private void BorderizeDataPortionOfCustomerSheet() 
{ 
    int rowsUsed = customerWorksheet.Cells.Rows.Count; 
    int colsUsed = SHIPVARIANCE_COL; 

    string bottomRightRange = string.Format("P{0}", rowsUsed); 
    var range = customerWorksheet.Cells.CreateRange("A1", bottomRightRange); 

    //Setting border for each cell in the range 
    var style = workBook.CreateStyle(); 
    style.SetBorder(BorderType.BottomBorder, CellBorderType.Thin, Color.Black); 
    style.SetBorder(BorderType.LeftBorder, CellBorderType.Thin, Color.Black); 
    style.SetBorder(BorderType.RightBorder, CellBorderType.Thin, Color.Black); 
    style.SetBorder(BorderType.TopBorder, CellBorderType.Thin, Color.Black); 

    for (int r = range.FirstRow; r < range.RowCount; r++) 
    { 
     for (int c = range.FirstColumn; c < range.ColumnCount; c++) 
     { 
      Cell cell = customerWorksheet.Cells[r, c]; 
      cell.SetStyle(style, new StyleFlag() 
      { 
       TopBorder = true, 
       BottomBorder = true, 
       LeftBorder = true, 
       RightBorder = true 
      }); 
     } 
    } 

    //Setting outline border to range 
    range.SetOutlineBorder(BorderType.TopBorder, CellBorderType.Thin, Color.Black); 
    range.SetOutlineBorder(BorderType.BottomBorder, CellBorderType.Thin, Color.Black); 
    range.SetOutlineBorder(BorderType.LeftBorder, CellBorderType.Thin, Color.Black); 
    range.SetOutlineBorder(BorderType.RightBorder, CellBorderType.Thin, Color.Black); 

    customerWorksheet.FreezePanes(FIRST_DATA_ROW, SHORTNAME_COL, rowsUsed, colsUsed); 
} 

答えて

1

あなたは物事を混ざっているようです。さて、最初の場所でコードの範囲 "A1:P1"にアウトラインボーダーを適用している場合は、スタイル/書式をセルに適用したり、範囲のアウトラインボーダーを指定したりすると(最初の行も同様です)再び、以前に適用した既存の書式設定を上書きします。だから、親切にもコードをうまく書いていることを確認してください。両方のコードセグメントが互いのフォーマットを妨げないようにしてください。

私はAsposeのSupport developer/Evangelistとして働いています。

+0

最初のコードが機能しないため、「再」コードが追加されました。太字なし、左揃えなし、背景色付けなし。しかし、それらのすべてのものは今働いています。境界はありませんが、どうしてですか?最初の試行がうまくいかなかったので、最初の行を再フォーマットするまで、以前の境界はシート全体で行われました。 –

関連する問題