ClosedXML で使用中のセルを抽出する方法

エクセルのワークシートの中で、データが記載されている範囲を抽出する場合を考えましょう。

例えば次のようなシートがあるとします。

スカスカのシートの中で B3 と F6 にだけデータが入っています。

これらのセルの背景色を黄色にセットする場合は、次のように CellsUsed メソッドを用いると簡単に実現できます。

using ClosedXML.Excel;

namespace ClosedXMLTest1d
{
    class Program
    {
        static void Main(string[] args)
        {
            var workbook = new XLWorkbook(@"C:\Temp\test_used.xlsx");
            
            foreach(var worksheet in workbook.Worksheets)
            {
                worksheet.CellsUsed().Style.Fill.SetBackgroundColor(XLColor.Yellow);
            }

            workbook.Save();
        }
    }
}

実行結果は次の通りです。

範囲として扱いたい場合は CellsUsed の代わりに RangeUsed を用います。

         worksheet.RangeUsed().Style.Fill.SetBackgroundColor(XLColor.Yellow);

このように複数のセルや範囲が一括で扱えます。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門