web-dev-qa-db-ja.com

C#を使用して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つの大きな境界線ではなく、すべてのセルの周囲に境界線を配置します。

どうすればこれを達成できますか?

13
Arnout

これらを個別に設定する必要があります

.Borders[Excel.XlBordersIndex.xlEdgeBottom] 
.Borders[Excel.XlBordersIndex.xlEdgeRight]
.Borders[Excel.XlBordersIndex.xlEdgeLeft]  
.Borders[Excel.XlBordersIndex.xlEdgeTop]
14
Tim Williams

多分これは助けることができます:

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

これは、各セルの周囲に境界線を設定するコードです。

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

パフォーマンスに影響を与えることなくこれを行いました。簡単なExcelを使ってフォーマットします:

enter image description here

exRangeで動的に変数に範囲をA1:C4として変数に格納し、以下のコードを使用して境界を指定しました

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


enter image description here

3
Sarath Avanavu

これが私の解決策です、単にUsedRange()関数を使用してください

Excel.Range tRange = oSheet.UsedRange;
            tRange.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
            tRange.Borders.Weight = Excel.XlBorderWeight.xlThin;        
0
MORFEE89
// ** - 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)));        
0
E Coder

このコードは、(row1、col1)から(row2、col2)までの領域の周囲に境界線を配置します。個々のセルには境界線がありません。変数colorは整数のカラーインデックス番号です。インデックス番号と対応する色のリストについては、 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 );
0
SaulN
ws.UsedRange.BorderAround(
                        Xl.XlLineStyle.xlDash,
                        Xl.XlBorderWeight.xlThick,
                        Xl.XlColorIndex.xlColorIndexAutomatic,
                        ColorTranslator.ToOle(Color.Blue));
0
Hamid