0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C# を使用してExcel 条件格式を設定する方法

Posted at

Excelの条件付き書式設定とは、条件に基づいてデータバー、カラースケール、アイコンセットを使用して、関連するセルを強調表示し、外れ値を強調し、データを視覚化することを指します。条件付き書式設定機能は、フィルタリングの高度なバージョンです。つまり、最初に条件を設定して特定の条件を満たすデータを選択し、次に特定の書式を指定します。データ処理においてExcelは掛け替えのない利点があるため、条件付き書式設定は、習得しなければならないスキルと言っても過言ではありません。この記事では、無料バージョンの製品であるFree Spire.XLSを使用して、C#でExcelの条件付き書式を実装する方法を紹介します。

製品は公式サイトまたはNugetからダウンロードすることができます。ダウンロードが完了したら、ダウンロードパッケージのBinフォルダーに.DllをVisual Studioへの参照として追加してください。Spire.XLSを使用してExcelファイルを新たに作成します。Microsoft Excelはその結果を確認するために使用されます。

ステップ1 無料バージョンのSpire.XLSを使用して、ワークブックとフォームを作成します。

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

ステップ2 サンプルデータをフォームセルに追加し、セルの行の高さ、列の幅、および配置を設定します。

sheet.Range["A1"].Value = "名前/学科";
sheet.Range["A2"].Value = "田中";
sheet.Range["A3"].Value = "水野";
sheet.Range["A4"].Value = "木村";
sheet.Range["A5"].Value = "金田";
sheet.Range["A6"].Value = "井上";
sheet.Range["A7"].Value = "土方";
sheet.Range["B1"].Value = "国語";
sheet.Range["C1"].Value = "数学";
sheet.Range["D1"].Value = "英語";
sheet.Range["E1"].Value = "理科";
sheet.Range["B2"].NumberValue = 56;
sheet.Range["B3"].NumberValue = 73;
sheet.Range["B4"].NumberValue = 75;
sheet.Range["B5"].NumberValue = 89;
sheet.Range["B6"].NumberValue = 65;
sheet.Range["B7"].NumberValue = 90;
sheet.Range["C2"].NumberValue = 78;
sheet.Range["C3"].NumberValue = 99;
sheet.Range["C4"].NumberValue = 86;
sheet.Range["C5"].NumberValue = 45;
sheet.Range["C6"].NumberValue = 98;
sheet.Range["C7"].NumberValue = 83;
sheet.Range["D2"].NumberValue = 79;
sheet.Range["D3"].NumberValue = 70;
sheet.Range["D4"].NumberValue = 90;
sheet.Range["D5"].NumberValue = 87;
sheet.Range["D6"].NumberValue = 65;
sheet.Range["D7"].NumberValue = 78;
sheet.Range["E2"].NumberValue = 65;
sheet.Range["E3"].NumberValue = 55;
sheet.Range["E4"].NumberValue = 100;
sheet.Range["E5"].NumberValue = 85;
sheet.Range["E6"].NumberValue = 60;
sheet.Range["E7"].NumberValue = 75;

sheet.AllocatedRange.RowHeight = 15;
sheet.AllocatedRange.ColumnWidth = 17;
sheet.AllocatedRange.VerticalAlignment = VerticalAlignType.Center;
sheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Center;

ステップ3 シートのセルB2:E3の条件付き書式を設定します。60ポイント未満のに赤いマークを、60ポイントを超えるに緑のマークをつけます。

ConditionalFormatWrapper format1 = sheet.Range["B2:E3"].ConditionalFormats.AddCondition();
format1.FormatType = ConditionalFormatType.CellValue;
format1.FirstFormula = "60";
format1.Operator = ComparisonOperatorType.Less;
format1.FontColor = Color.Red;

ConditionalFormatWrapper format2 = sheet.Range["B2:E3"].ConditionalFormats.AddCondition();
format2.FormatType = ConditionalFormatType.CellValue;
format2.FirstFormula = "60";
format2.Operator = ComparisonOperatorType.GreaterOrEqual;
format2.FontColor = Color.ForestGreen;

ステップ4 シートのセルB4:E5のデータにデータバーの条件付き書式を設定します。

ConditionalFormatWrapper format3 = sheet.Range["B4:E5"].ConditionalFormats.AddCondition();
format3.FormatType = ConditionalFormatType.DataBar;
format3.DataBar.BarColor = Color.DeepSkyBlue;

ステップ5 シートのセルB6:E7のデータに色レベルの条件付き書式を設定します。

ConditionalFormatWrapper format4 = sheet.Range["B6:E7"].ConditionalFormats.AddCondition();
format4.FormatType = ConditionalFormatType.ColorScale;

ステップ6 ファイルをExcel 2019として保存し、結果を表示します。

workbook.SaveToFile("sample.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("sample.xlsx");

結果は以下のように
01.png

完全なるコード

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Xls;
using System.Drawing;

namespace How_to_set_data_bar
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            Worksheet sheet = workbook.Worksheets[0];

            sheet.Range["A1"].Value = "名前/学科";
            sheet.Range["A2"].Value = "田中";
            sheet.Range["A3"].Value = "水野";
            sheet.Range["A4"].Value = "木村";
            sheet.Range["A5"].Value = "金田";
            sheet.Range["A6"].Value = "井上";
            sheet.Range["A7"].Value = "土方";
            sheet.Range["B1"].Value = "国語";
            sheet.Range["C1"].Value = "数学";
            sheet.Range["D1"].Value = "英語";
            sheet.Range["E1"].Value = "理科";
            sheet.Range["B2"].NumberValue = 56;
            sheet.Range["B3"].NumberValue = 73;
            sheet.Range["B4"].NumberValue = 75;
            sheet.Range["B5"].NumberValue = 89;
            sheet.Range["B6"].NumberValue = 65;
            sheet.Range["B7"].NumberValue = 90;
            sheet.Range["C2"].NumberValue = 78;
            sheet.Range["C3"].NumberValue = 99;
            sheet.Range["C4"].NumberValue = 86;
            sheet.Range["C5"].NumberValue = 45;
            sheet.Range["C6"].NumberValue = 98;
            sheet.Range["C7"].NumberValue = 83;
            sheet.Range["D2"].NumberValue = 79;
            sheet.Range["D3"].NumberValue = 70;
            sheet.Range["D4"].NumberValue = 90;
            sheet.Range["D5"].NumberValue = 87;
            sheet.Range["D6"].NumberValue = 65;
            sheet.Range["D7"].NumberValue = 78;
            sheet.Range["E2"].NumberValue = 65;
            sheet.Range["E3"].NumberValue = 55;
            sheet.Range["E4"].NumberValue = 100;
            sheet.Range["E5"].NumberValue = 85;
            sheet.Range["E6"].NumberValue = 60;
            sheet.Range["E7"].NumberValue = 75;

            sheet.AllocatedRange.RowHeight = 15;
            sheet.AllocatedRange.ColumnWidth = 17;
            sheet.AllocatedRange.VerticalAlignment = VerticalAlignType.Center;
            sheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Center;

            ConditionalFormatWrapper format1 = sheet.Range["B2:E3"].ConditionalFormats.AddCondition();
            format1.FormatType = ConditionalFormatType.CellValue;
            format1.FirstFormula = "60";
            format1.Operator = ComparisonOperatorType.Less;
            format1.FontColor = Color.Red;

            ConditionalFormatWrapper format2 = sheet.Range["B2:E3"].ConditionalFormats.AddCondition();
            format2.FormatType = ConditionalFormatType.CellValue;
            format2.FirstFormula = "60";
            format2.Operator = ComparisonOperatorType.GreaterOrEqual;
            format2.FontColor = Color.ForestGreen;

            ConditionalFormatWrapper format3 = sheet.Range["B4:E5"].ConditionalFormats.AddCondition();
            format3.FormatType = ConditionalFormatType.DataBar;
            format3.DataBar.BarColor = Color.DeepSkyBlue;

            ConditionalFormatWrapper format4 = sheet.Range["B6:E7"].ConditionalFormats.AddCondition();
            format4.FormatType = ConditionalFormatType.ColorScale;

            workbook.SaveToFile("sample.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("sample.xlsx");

        }
    }
}

今回のExcel 条件格式を設定する方法は以上でした、最後まで読んでいただきありがとうございました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?