DioDocs for Excel
DioDocs for Excel
タグの使用
機能 > ワークシート > タグの使用

DioDocs for Excelでは、ワークシートにタグを構成して、セル、行、列、セル範囲、またはスプレッドシートに個人的なデータを保存できます。タグには任意のデータを保存でき、エンドユーザーに表示されないように設定できます。JSONにインポートする、またはJSONオブジェクトをエクスポートする際、タグが保持されます。

IWorksheetインタフェースのTagプロパティを使用して、ワークシートにタグを構成できます。また、セルまたはセル範囲に対して、IRangeインタフェースのTagプロパティを使用してタグを構成できます。セル範囲でタグ値が異なる場合、範囲の左上隅にあるセルのタグ値が返されます。IRangeインタフェースのEntireColumnプロパティとEntireRowプロパティ、およびTagプロパティを使用することで、列と行のタグを取得または設定できます。

クラスをインスタンス化することで、カスタムタグを構成することもできます。json I/Oをサポートするために、IJsonSerializerを実装してJsonSerializerとJsonDeserializerを提供する必要があります。

コードの使用

タグを使用する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
public void Tags()
{
    // ワークブックを初期化します
    Workbook workbook = new Workbook();
    // 既定のワークシートを取得します
    IWorksheet worksheet = workbook.Worksheets[0];

    // ワークシートにタグを追加します
    worksheet.Tag = "これはシートのタグです。";
    // セルC1にタグを追加します
    worksheet.Range["C1"].Tag = "これはセルC1のタグです。";
    // 4行目にタグを追加します
    worksheet.Range["A4"].EntireRow.Tag = "これは4行目のタグです。";
    // 列Fにタグを追加します
    worksheet.Range["F5"].EntireColumn.Tag = "これは列Fのタグです。";
    // 範囲A1:B2にタグを追加します
    worksheet.Range["A1:B2"].Tag = "これは範囲A1:B2のタグです。";

    // ワークブックをJSONストリームにエクスポートします
    var jsonstr = workbook.ToJson();

    // 追加のワークブックを初期化します
    Workbook workbook2 = new Workbook();

    // ワークブックにJSONストリームをインポートします
    workbook2.FromJson(jsonstr);

    // 範囲A1:B2のタグを取得します
    object tag = workbook2.Worksheets[0].Range["A1:B2"].Tag;

    // SONストリームのエクスポートおよびインポート中にタグが保持されます
    Console.WriteLine(" Tag for CellRange[A1:B2] is : " + tag);

}


カスタムタグを使用する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
class CustomTags
{
    public void CustomTag()
    {
        // ワークブックを初期化します
        Workbook workbook = new Workbook();
        // 既定のワークシートを取得します
        IWorksheet worksheet = workbook.Worksheets[0];

        Workbook.TagJsonSerializer = new NetJsonSerializer();

        // 「A1」のタグをカスタムタイプ「Student」として設定します
        worksheet.Range["A1"].Tag = new Student("Robin", 7);

        // ワークブックをJSONストリームにエクスポートします
        string json = workbook.ToJson();

        // 追加のワークブックを初期化します
        Workbook workbook2 = new Workbook();

        // ワークブックにJSONストリームをインポートします
        workbook2.FromJson(json);

        // タグをJObjectとして取得します
        object tag = workbook2.Worksheets[0].Range["A1"].Tag;

        // JObjectを「Student」に変換します
        Student student = (tag as Newtonsoft.Json.Linq.JObject).ToObject<Student>();

        // JSONストリームのエクスポートおよびインポート中にタグが保持されます
        Console.WriteLine(" CellRange [A1]のタグのクラス: " + student);
        Console.WriteLine(" CellRange [A1]のタグ: " + tag);

    }
}

internal class Student
{
    public string name;
    public int age;

    public Student(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}
internal class NetJsonSerializer : IJsonSerializer
{
    public object Deserialize(string json)
    {
        return Newtonsoft.Json.JsonConvert.DeserializeObject(json) as Newtonsoft.Json.Linq.JObject;
    }

    public string Serialize(object value)
    {
        return Newtonsoft.Json.JsonConvert.SerializeObject(value);
    }
}