Node.jsを通じて範囲を管理する方法

紹介

Excelでは、マウスのボックス選択を使って複数のセルを選択でき、その選択範囲は「Range」と呼ばれます。

例として、Excelのセル「A1」で左クリックし、そのままセル「C4」までドラッグします。選択した矩形領域は、Aspose.Cells for Node.js via C++を使ってオブジェクトとして簡単に作成できます。

範囲を作成し、値を設定し、スタイルを適用し、その他さまざまな操作を行う方法です。

### Aspose.Cells for Node.js via C++を使った範囲の管理

Aspose.Cellsは、Microsoft Excelファイルを表すクラス、Workbookを提供しています。Workbookクラスには、Excelファイル内の各ワークシートにアクセスできるWorkbook.getWorksheets()コレクションが含まれています。ワークシートはWorksheetクラスで表されます。WorksheetクラスにはCellsコレクションが提供されています。

範囲の作成

A1:C4にまたがる長方形領域を作成する場合は、次のコードを使用できます。

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const workbook = new AsposeCells.Workbook(filePath);
// Get Cells
const cells = workbook.getWorksheets().get(0).getCells();
// Create Range
const range = cells.createRange("A1:C4");

範囲のセルに値を入力する

A1:C4にまたがるセルの範囲があるとします。行列は4*3=12セルを作ります。それぞれの範囲セルは順に配置されます: Range[0,0]、Range[0,1]、Range[0,2]、Range[1,0]、Range[1,1]、Range[1,2]、Range[2,0]、Range[2,1]、Range[2,2]、Range[3,0]、Range[3,1]、Range[3,2]。

次の例は、範囲のセルに値を入力する方法を示しています。

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "RangeValueTest.xlsx");

// Create a Workbook
const workbook = new AsposeCells.Workbook();
// Get Cells
const cells = workbook.getWorksheets().get(0).getCells();
// Create Range
const range = cells.createRange("A1:C4");
// Put value
range.get(0, 0).setValue("A1");
range.get(0, 1).setValue("B1");
range.get(0, 2).setValue("C1");
range.get(3, 0).setValue("A4");
range.get(3, 1).setValue("B4");
range.get(3, 2).setValue("C4");
// Save the Workbook
workbook.save(filePath);

範囲のセルのスタイルを設定する

次の例は、範囲内のセルのスタイルを設定する方法を示しています。

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Creates a Workbook
const workbook = new AsposeCells.Workbook();
// Gets Cells
const cells = workbook.getWorksheets().get(0).getCells();
// Creates Range
const range = cells.createRange("A1:C4");
// Puts value
range.get(0, 0).setValue("A1");
range.get(3, 2).setValue("C4");
// Sets Style
let style00 = workbook.createStyle();
style00.setPattern(AsposeCells.BackgroundType.Solid);
style00.setForegroundColor(new AsposeCells.Color(255, 0, 0)); // Red
range.get(0, 0).setStyle(style00);
let style32 = workbook.createStyle();
style32.setPattern(AsposeCells.BackgroundType.HorizontalStripe);
style32.setForegroundColor(new AsposeCells.Color(0, 255, 0)); // Green
range.get(3, 2).setStyle(style32);
// Saves the Workbook
workbook.save("RangeStyleTest.xlsx");

範囲のCurrentRegionを取得する

CurrentRegionは、現在の範囲を表すRangeオブジェクトを返すプロパティです。

現在の領域は、空白の行と列の組み合わせによって囲まれた範囲です。読み取り専用です。

Excelでは、CurrentRegionエリアを次の方法で取得できます:

  1. マウスボックスを使ってエリア(範囲1)を選択します。
  2. 「ホーム - 編集 - 検索と選択 - 特定の場所に移動」をクリックするか、「Ctrl+Shift+*」を使用すると、Excelが自動的にエリア(範囲2)を選択します。これで範囲2は範囲1のCurrentRegionです。

以下のテストファイルをダウンロードし、Excelで開いて、マウスボックスを使ってエリア「A1:D7」を選択し、「Ctrl+Shift+*」をクリックすると、「A1:C3」エリアが選択されているのが見えます。

current_region.xlsx

次に、以下の例を実行して、Aspose.Cellsでの動作を確認してください:

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "current_region.xlsx");
// Create a Workbook
const workbook = new AsposeCells.Workbook(filePath);
// Get Cells
const cells = workbook.getWorksheets().get(0).getCells();
// Create Range
const src = cells.createRange("A1:D7");
// Get CurrentRegion
const A1C3 = src.getCurrentRegion();

高度なトピック