web-dev-qa-db-ja.com

Microsoft.Office.Interop.Excel:1つのセルに境界線を適用する方法

Microsoft.Office.Interop.Excelライブラリを使用して1つのセルに境界線を適用しようとしています。

特定の列内の空のセルを検索するwhileループを実行しています。セルが見つかったら、それに境界線を適用します。

Rangesを使用するフォーラムがたくさんあることは知っていますが、どのセルに適用されているのか正確にわからないため、Range機能を使用できません。

私の考えは:

(Excel.Range)xlWS.Cells [row、1] .Borders.LineStyle =(任意の値);

何かアドバイス? (他のフォーラムへのリンクの他に、私はすでにたくさんのフォームを調べました)?

7
Van-Brad
            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;

これが誰かを助けることを願っています! cell [row、column]の周りに細い線の境界線を置きます!

14
Van-Brad
    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

11
jiverson

範囲内の各セルに

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();
4

これはjiversonの回答に基づいていますが、基本的なニーズについてははるかに簡潔です。範囲を作成し、その境界線を取得して、範囲の下部に境界線を追加するだけです。

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を使用して、上部と側面に境界線を追加することもできます。

1
B. Clay Shannon