2015-11-13 8 views
0

Есть ли сжатый (однострочный) способ программно добавить правые границы в диапазон ячеек в электронной таблице Excel с помощью C#?Как я могу эффективно добавлять правые границы в диапазон Excel с помощью C#?

Этот код работает:

private void AddRightBorderToMainRange() 
{ 
    for (int i = COLUMN_HEADING_ROW; i < _lastRowAdded; i++) 
    { 
     for (int j = ITEMDESC_COL; j < TOTALS_COL; j++) 
     { 
      var rightBorderizeRange = _xlSheet.Range[_xlSheet.Cells[i, j], _xlSheet.Cells[i, j]]; 
      Borders border = rightBorderizeRange.Borders; 
      border[XlBordersIndex.xlEdgeRight].LineStyle = XlLineStyle.xlContinuous; 
     } 
    } 
} 

... (внешний цикл, охватывающий диапазон строк, внутренний контур, охватывающий диапазон столбцов), но кажется излишним и, вероятно, неэффективна.

ответ

0

Это немного более эффективным и менее crosseye индуцирующего:

var rightBorderizeRange = 
    _xlSheet.Range[_xlSheet.Cells[COLUMN_HEADING_ROW, ITEMDESC_COL], 
    _xlSheet.Cells[_lastRowAdded, TOTALS_COL]]; 
Borders border = rightBorderizeRange.Borders; 
border[XlBordersIndex.xlInsideVertical].LineStyle = 
    XlLineStyle.xlContinuous; 

Итак, что нужно сделать, это:

0) Define the range you want to operate on (add right borderlines to) - named *rightBorderizeRange* above 
1) Get the Borders member for that range - named *border* above 
2) Apply a border to the InsideVertical (vertical lines within that range) member of the border array 
+0

Можете ли вы уточнить, в каком вы сделали? Благодаря! –