FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【ClosedXML】 Style.Border

 今回は罫線について説明します。
 罫線はStyle.Border以下のプロパティで指定します。
 罫線を引く際に指定するのは以下の3点です。
  1)線を引く位置(下線とか周囲とか)
  2)線の種類(実線とか点線とか)
  3)線の色
 3)の線の色のみ省略できます。(省略した場合は黒になります)
 具体的には以下のサンプルコードを参考にしてください。
using ClosedXML.Excel;
using System;
using System.IO;

namespace ClosedXml06
{
    class Program
    {
        static void Main(string[] args)
        {
            var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Book.xlsx");

            using(var book = new XLWorkbook(XLEventTracking.Disabled))
            {
                var sheet = book.AddWorksheet("シート1");

                // 赤い罫線(下線)を引く
                sheet.Cell("A1").Value = "赤い下線を引く";
                sheet.Cell("A1").Style.Border.BottomBorder = XLBorderStyleValues.Thin;
                sheet.Cell("A1").Style.Border.BottomBorderColor = XLColor.Red;

                // 範囲の周りに罫線を引く
                sheet.Cell("A3").Value = "OutsideBorderで罫線を引く";
                sheet.Range("A3:C5").Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
                
                // 範囲の内側に罫線を引く
                sheet.Cell("A7").Value = "InsideBorderで罫線を引く";
                sheet.Range("A7:C10").Style.Border.InsideBorder = XLBorderStyleValues.Thin;

                // 範囲に罫線を引く場合はこちらの方が早い
                sheet.Cell("A13").Value = "組み合わせて罫線を引く";
                sheet.Range("A13:C15").Style
                    .Border.SetTopBorder(XLBorderStyleValues.Thin)
                    .Border.SetBottomBorder(XLBorderStyleValues.Thin)
                    .Border.SetLeftBorder(XLBorderStyleValues.Thin)
                    .Border.SetRightBorder(XLBorderStyleValues.Thin);

                // 斜線を引く
                sheet.Cell("A17").Style.Border.DiagonalBorder = XLBorderStyleValues.Thin;
                sheet.Cell("A17").Style.Border.DiagonalDown = true;

                sheet.Cell("A18").Style.Border.DiagonalBorder = XLBorderStyleValues.Thin;
                sheet.Cell("A18").Style.Border.DiagonalUp = true;

                book.SaveAs(filePath);
            }
        }
    }
}
 このコードを実行すると以下の様になります。
StyleBorder.png
 ClosedXMLでは罫線を引く位置を以下の様に定義しています。
  TopBorder:セルの上部
  BottomBorder:セルの下部
  LeftBorder:セルの左辺
  RightBorder:セルの右辺
  DiagonalBorder:斜線
  OutsideBorder:セル(セル範囲)の周り
  InsideBorder:セル範囲の内側
 例えば、セルの下部に線を引きたい場合は、
sheet.Cell("A1").Style.Border.BottomBorder = XLBorderStyleValues.Thin;
の様に、線を引きたい場所(BottomBorder等)に線の種類(XLBorderStyleValues.Thin)を指定します。
 同様に、線の色を指定したい場合は、
sheet.Cell("A1").Style.Border.BottomBorderColor = XLColor.Red;
の様に、線の色を指定します。
 線の色を指定しなかった場合は黒線になります。

 OutsideBorderとInsideBorderは他の罫線と少し違っていて、範囲の周り又は内側の線を引くことができます。
 この2つを組み合わせることで指定した範囲全てに罫線を引くことができますが、この2つはパフォーマンスが悪いのでTop, Bottom, Left, Rightをそれぞれ指定した方が処理速度は速くなります。
 これはOutsideBorderとInsideBorderでは線を引く箇所を調査する必要があるためだと思われます。
 表に罫線を引きたい場合はOutsideBorderとInsideBorderで2回同じような調査が必要になるので、表が大きいとかなり違ってきます。
 一々4か所(色も変えるとなると8か所)の指定をするのは面倒だと思うのであれば、範囲の罫線を引く拡張メソッドを作っておくと便利です。

 斜線を引きたい場合はDiagonalBorderに線の種類を指定するだけでは不十分です。
 DiagonalDownプロパティ、DiagonalUpプロパティで斜線を引く方向を指定する必要があります。

 最後に線の種類(XLBorderStyleValues)を紹介して罫線についての説明を終わります。
線の種類

 次回はセルの塗りつぶしについて説明します。
スポンサーサイト

コメントの投稿

非公開コメント

カレンダー
11 | 2018/12 | 01
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
全記事表示リンク

全ての記事を表示する

カテゴリ
タグリスト

月別アーカイブ
11  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09 
最新記事
リンク
最新コメント
検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。