Как можно установить границу вокруг нескольких ячеек в excel с помощью С#

Я работаю над проектом, который создает файлы excel.

Мне сложно помещать границу на несколько ячеек, чтобы организовать файл excel.

Скажем, мне нужна граница от ячейки B5 до B10. Не должно быть границ между B5, B6, B7,...

В настоящее время у меня есть этот код:

workSheet_range = worksheet.get_Range("B5", "B10");
workSheet_range.Borders.Color = System.Drawing.Color.Black.ToArgb();

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

Как я могу это сделать?

Ответ 1

Вам необходимо индивидуально установить эти

.Borders[Excel.XlBordersIndex.xlEdgeBottom] 
.Borders[Excel.XlBordersIndex.xlEdgeRight]
.Borders[Excel.XlBordersIndex.xlEdgeLeft]  
.Borders[Excel.XlBordersIndex.xlEdgeTop]

Ответ 2

Возможно, это может помочь:

workSheet_range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThick);

Ответ 3

Это код, который устанавливает границу вокруг каждой ячейки:

xlWS.get_Range("C9", "N9").Cells.Borders.Weight = XL.XlBorderWeight.xlMedium;

Ответ 4

Я сделал это, не влияя на производительность. Я беру простую форму для форматирования:

До

введите описание изображения здесь

Мне удалось сохранить диапазон A1:C4 в переменной динамически в exRange и использовать приведенный ниже код, чтобы предоставить границу

((Range)excelSheet.get_Range(exRange)).Cells.Borders.LineStyle = XlLineStyle.xlContinuous;


После

введите описание изображения здесь

Ответ 5

// ** - You Should do it in all Cells 

//BorderAround: Medium**

worksheet.get_Range("b5", "b5").Cells.BorderAround(Missing.Value, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, ColorTranslator.ToOle(Color.FromArgb(255, 192, 0)));

worksheet.get_Range("b6", "b6").Cells.BorderAround(Missing.Value, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, ColorTranslator.ToOle(Color.FromArgb(255, 192, 0)));

worksheet.get_Range("b10", "b10").Cells.BorderAround(Missing.Value, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, ColorTranslator.ToOle(Color.FromArgb(255, 192, 0)));        

Ответ 6

Этот код помещает границу вокруг области от (row1, col1) до (row2, col2). Отдельные ячейки не получают границы. Цвет переменной - это целочисленный номер индекса цвета. См. http://www.databison.com/excel-color-palette-and-color-index-change-using-vba/ для списка номеров индексов и соответствующих цветов.

    Range cell1 = worksheet.Cells[row1,col1];
    Range cell2 = worksheet.Cells[row2,col2];
    Range range = worksheet.get_Range(cell1,cell2);
    range.BorderAround(
        Type.Missing, XlBorderWeight.xlThick, (XlColorIndex)color, Type.Missing );

Ответ 7

ws.UsedRange.BorderAround(
                        Xl.XlLineStyle.xlDash,
                        Xl.XlBorderWeight.xlThick,
                        Xl.XlColorIndex.xlColorIndexAutomatic,
                        ColorTranslator.ToOle(Color.Blue));

Ответ 8

Вот мое решение, просто используйте функцию UsedRange()

Excel.Range tRange = oSheet.UsedRange;
            tRange.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
            tRange.Borders.Weight = Excel.XlBorderWeight.xlThin;