2013-07-19 4 views
6

Я ищу, чтобы применить границу к одной ячейке с помощью библиотеки Microsoft.Office.Interop.Excel.Microsoft.Office.Interop.Excel: Как применить границу к ONE CELL

Я запускаю цикл while, который ищет пустую ячейку в определенном столбце, после того как найдена ячейка. Я хочу применить к ней границу.

Я знаю, что на этом форуме много форумов, но я не могу использовать функциональность диапазона, так как я не знаю, к какой ячейке она применяется точно.

Моя идея была:

(Excel.Range) xlWS.Cells [строка, 1] .Borders.LineStyle = (любое значение);

Любые советы? (помимо ссылок на другие форумы, я уже просматривал тонны форм)?

+0

Так что не работает с вашей текущей идеей? – chancea

+0

Это было скорее угадать, благодаря jiverson я смог создать правильный код, чтобы сделать это! –

+0

Удивительный! если его ответ решит вашу проблему, обязательно нажмите галочку, чтобы принять ее, чтобы мы знали, что этот вопрос был разрешен. – chancea

ответ

9
Microsoft.Office.Interop.Excel.Range range = sheet.UsedRange; 
    Microsoft.Office.Interop.Excel.Range cell = range.Cells[1][1]; 
    Microsoft.Office.Interop.Excel.Borders border = cell.Borders; 
    border[XlBordersIndex.xlEdgeLeft].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 
    border[XlBordersIndex.xlEdgeTop].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 
    border[XlBordersIndex.xlEdgeBottom].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 
    border[XlBordersIndex.xlEdgeRight].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 

См. Это answer для более подробной информации.

+0

Спасибо! Используя ваши советы, я смог сгенерировать код, который выполняет те же функции, что и количество кода. –

11
  Excel.Range range = xlWS.UsedRange; 
      Excel.Range cell = range.Cells[row,column]; 
      Excel.Borders border = cell.Borders; 

      border.LineStyle = Excel.XlLineStyle.xlContinuous; 
      border.Weight = 2d; 

Надеюсь, это поможет кому-то! Помещает тонкую границу линии вокруг ячейки [строка, столбец]!

+0

Это работало так, как я хотел. Единственное, что я изменил Excel.Range cell = range.Cells; – SubqueryCrunch

1

Это основано на ответе Дживерсона, но гораздо более кратким для удовлетворения основных потребностей; просто создать диапазон, получить свои границы, и добавить рамку к нижней части диапазона:

var platypusRange = _xlSheet.Range[_xlSheet.Cells[1, 1], _xlSheet.Cells[1, 3]]; 
. . . 
Borders border = platypusRange.Borders; 
border[XlBordersIndex.xlEdgeBottom].LineStyle = XlLineStyle.xlContinuous; 

Конечно, вы можете добавить границу сверху и по бокам тоже, используя xlEdgeTop, xlEdgeLeft и xlEdgeRight ,

3

Для каждой ячейки в диапазоне

Microsoft.Office.Interop.Excel.Range chartRange; 
chartRange = workSheet.get_Range("a1", "g7"); 
foreach (Microsoft.Office.Interop.Excel.Range cell in chartRange.Cells) 
{ 
    cell.BorderAround2(); 
} 

К целому ряду

chartRange.BorderAround2(); 
+0

Я искал это, спасибо Мухаммаду. BorderAround2() выводит контур для заданного диапазона – imsome1

Смежные вопросы