Excel JavaScript APIを使用した範囲値、テキスト、または数式の設定と取得 – Officeアドイン

この記事では、Excel JavaScript APIを使用して、範囲の値、テキスト、または数式を設定および取得するコードサンプルを提供しています。Excel JavaScript APIには「セル」オブジェクトがなく、すべてのExcelセルはRangeオブジェクトとして定義されています。個別のセルは1つのセルを持つRangeオブジェクトに変換され、連続する複数セルを含むことも可能です。例として、セルの値や数式の設定、範囲の値、テキスト、数式の取得方法が説明されています。詳細はExcel.Rangeクラスを参照してください。

Excel JavaScript APIを使用した範囲の値、テキスト、数式の設定と取得

この記事では、Excel JavaScript APIを使用して範囲の値、テキスト、または数式を設定および取得するコードサンプルを提供します。Rangeオブジェクトがサポートするプロパティとメソッドの完全なリストについては、Excel.Rangeクラスを参照してください。

注意

Excel JavaScript APIには「セル」オブジェクトやクラスはありません。代わりに、すべてのExcelのセルは`Range`オブジェクトとして定義されています。Excel UIでの個々のセルは、Excel JavaScript APIの`Range`オブジェクトに1つのセルとして変換されます。また、単一の`Range`オブジェクトには、複数の隣接するセルを含むことができます。詳細については、[Excel JavaScript APIを使用してセルを操作する](https://learn.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-cells)を参照してください。

値または数式の設定

以下のコードサンプルでは、単一のセルまたは複数のセルの範囲に値と数式を設定します。

単一セルの値を設定

以下のコードサンプルは、セルC3の値を「5」に設定し、データに合わせて列の幅を自動調整します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("C3");
    range.values = [[5]];
    range.format.autofitColumns();

    await context.sync();
});

セルの値が更新される前のデータ

セルの値が更新される前のデータ

セルの値が更新された後のデータ

セルの値が更新された後のデータ

複数セルの範囲の値を設定

以下のコードサンプルでは、範囲B5:D5のセルに値を設定し、データに合わせて列の幅を自動調整します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["Potato Chips", 10, 1.80],
    ];

    let range = sheet.getRange("B5:D5");
    range.values = data;
    range.format.autofitColumns();

    await context.sync();
});

セルの値が更新される前のデータ

セルの値が更新される前のデータ

セルの値が更新された後のデータ

セルの値が更新された後のデータ

単一セルの数式を設定

以下のコードサンプルでは、セルE3に数式を設定し、データに合わせて列の幅を自動調整します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("E3");
    range.formulas = [[ "=C3 * D3" ]];
    range.format.autofitColumns();

    await context.sync();
});

セルの数式が設定される前のデータ

セルの数式が設定される前のデータ

セルの数式が設定された後のデータ

セルの数式が設定された後のデータ

複数セルの範囲の数式を設定

以下のコードサンプルでは、範囲E2:E6のセルに数式を設定し、データに合わせて列の幅を自動調整します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["=C3 * D3"],
        ["=C4 * D4"],
        ["=C5 * D5"],
        ["=SUM(E3:E5)"]
    ];

    let range = sheet.getRange("E3:E6");
    range.formulas = data;
    range.format.autofitColumns();

    await context.sync();
});

セルの数式が設定される前のデータ

セルの数式が設定される前のデータ

セルの数式が設定された後のデータ

セルの数式が設定された後のデータ

値、テキスト、または数式の取得

以下のコードサンプルでは、範囲内のセルから値、テキスト、および数式を取得します。

複数セルの範囲から値を取得

以下のコードサンプルでは、範囲B2:E6を取得し、そのvaluesプロパティをロードして、値をコンソールに書き込みます。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("values");
    await context.sync();

    console.log(JSON.stringify(range.values, null, 4));
});

範囲内のデータ(列Eの値は数式による結果)

範囲内のデータ

上記コードサンプルによってコンソールにログされたrange.values

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        15
    ],
    [
        "Coffee",
        1,
        34.5,
        34.5
    ],
    [
        "Chocolate",
        5,
        9.56,
        47.8
    ],
    [
        "",
        "",
        "",
        97.3
    ]
]

複数セルの範囲からテキストを取得

以下のコードサンプルでは、範囲B2:E6を取得し、そのtextプロパティをロードして、テキストをコンソールに書き込みます。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("text");
    await context.sync();

    console.log(JSON.stringify(range.text, null, 4));
});

範囲内のデータ(列Eの値は数式による結果)

範囲内のデータ

上記コードサンプルによってコンソールにログされたrange.text

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        "2",
        "7.5",
        "15"
    ],
    [
        "Coffee",
        "1",
        "34.5",
        "34.5"
    ],
    [
        "Chocolate",
        "5",
        "9.56",
        "47.8"
    ],
    [
        "",
        "",
        "",
        "97.3"
    ]
]

複数セルの範囲から数式を取得

以下のコードサンプルでは、範囲B2:E6を取得し、そのformulasプロパティをロードして、数式をコンソールに書き込みます。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("formulas");
    await context.sync();

    console.log(JSON.stringify(range.formulas, null, 4));
});

範囲内のデータ(列Eの値は数式による結果)

範囲内のデータ

上記コードサンプルによってコンソールにログされたrange.formulas

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        "=C3 * D3"
    ],
    [
        "Coffee",
        1,
        34.5,
        "=C4 * D4"
    ],
    [
        "Chocolate",
        5,
        9.56,
        "=C5 * D5"
    ],
    [
        "",
        "",
        "",
        "=SUM(E3:E5)"
    ]
]

参考情報

エクセルJavaScript APIによる範囲の操作に関する詳細を知るには、上記に記載されているリンクを参照してください。これにより、さまざまなシナリオに対処できる方法を学ぶことができます。

————-

Set and get range values, text, or formulas using the Excel JavaScript API – Office Add-ins

Source link

This article provides code samples demonstrating how to use the Excel JavaScript API to set and get values, text, or formulas for ranges of cells. Key points include:

  1. Range Objects: In the Excel JavaScript API, there is no separate "Cell" object; all Excel cells are considered as Range objects.

  2. Setting Values:

    • You can set values for individual cells (e.g., updating cell C3 to "5") and for ranges of cells (e.g., setting cells B5:D5 to a list of items).
    • Formulas can be set for both single cells (e.g., E3 as "=C3 * D3") and for ranges (e.g., E3:E6 with various formulas).
  3. Getting Values:

    • The API allows you to retrieve raw values, displayed text, and formulas from a specified range.
    • Using the load method for the properties "values," "text," and "formulas" enables you to access and log the respective outputs.
  4. Example Outputs:
    • The article includes console logs showing the output of values, text, and formulas from specified ranges, demonstrating how data is represented in different forms.

Overall, this summary outlines how to manipulate cell data in Excel using the JavaScript API, emphasizing its flexibility with ranges and formulas.

関連記事