はじめに
Cell クラスは Aspose.Cells FOSS for Java の基礎単位です。型付き値を格納し、CellValueType 列挙体を通じて実行時の型を公開し、Excel が評価できるように数式文字列を永続化し、getStringValue() を介して統一された文字列表現を提供します。この投稿では、検証済みの例とともにコアセル API を詳細に検証します。
以下のすべてのコード例は Maven 依存関係を使用しています:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
コアセル API
putValue() を使用した型付き値の保存
Cell.putValue() は 6 つの Java 型を受け入れます: String、int、double、boolean、LocalDateTime、および Object。 各呼び出しはセルの内部値を設定し、cell.getType() が返す CellValueType を決定します。
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
import java.time.LocalDateTime;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell a1 = sheet.getCells().get("A1");
a1.putValue("Revenue");
assert a1.getType() == CellValueType.STRING;
Cell b1 = sheet.getCells().get("B1");
b1.putValue(42500.75);
assert b1.getType() == CellValueType.NUMBER;
Cell c1 = sheet.getCells().get("C1");
c1.putValue(true);
assert c1.getType() == CellValueType.BOOLEAN;
Cell d1 = sheet.getCells().get("D1");
d1.putValue(LocalDateTime.of(2026, 4, 27, 9, 0, 0));
assert d1.getType() == CellValueType.DATE_TIME;
workbook.save("typed.xlsx");
}
空白セルは getType() から CellValueType.BLANK を返します。putValue(int) を使用して保存された整数値は、XLSX シリアライズを往復しても小数点が付加されません — getStringValue() は "123.0" ではなく "123" を返します。
実行時の値の検査
cell.getValue() は、生の格納値を Object として返します。 cell.getStringValue()
ロケール非依存の文字列表現を返し、下流処理や
表示に適しています。 CellValueType に基づく分岐は、型安全な
値抽出のために推奨されるパターンです:
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.getCells().get("A1").putValue("Hello");
sheet.getCells().get("B1").putValue(123);
sheet.getCells().get("C1").putValue(true);
sheet.getCells().get("D1").putValue(12.5d);
sheet.getCells().get("G1").setFormula("=B1*2");
Cell b1 = sheet.getCells().get("B1");
if (b1.getType() == CellValueType.NUMBER) {
System.out.println("Number: " + b1.getStringValue());
}
workbook.save("inspect.xlsx");
}
数式ストレージ
数式文字列は cell.setFormula() で保存されます。保存された数式文字列は= で始まり、標準的な Excel の数式構文に従います。getType() メソッドはCellValueType.FORMULA を数式セルに対して返します。Aspose.Cells FOSS for Java は
XLSX で数式を保存およびラウンドトリップし、数式は開く際に Excel によって再計算されます。
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell b1 = sheet.getCells().get("B1");
b1.putValue(100.0);
Cell c1 = sheet.getCells().get("C1");
c1.setFormula("=B1*1.2");
assert c1.getType() == CellValueType.FORMULA;
workbook.save("formulas.xlsx");
}
XLSX ラウンドトリップ忠実度
すべての型付き値は、XLSX のシリアライズと再ロードの間で保持されます。既存の .xlsx ファイルをロードする際は、new Workbook(path) または new Workbook(path, options) を LoadOptions と共に使用して修復モードを有効にします。再ロード後、getType() と getStringValue() は書き込み時と同じ値を返します。
import com.aspose.cells_foss.LoadIssue;
import com.aspose.cells_foss.LoadOptions;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
LoadOptions options = new LoadOptions();
options.setStrictMode(false);
options.setTryRepairPackage(true);
options.setTryRepairXml(true);
try (Workbook workbook = new Workbook("input.xlsx", options)) {
if (workbook.getLoadDiagnostics().hasRepairs()) {
for (LoadIssue issue : workbook.getLoadDiagnostics().getIssues()) {
System.out.println(issue.getMessage());
}
}
Worksheet sheet = workbook.getWorksheets().get(0);
System.out.println(sheet.getCells().get("A1").getStringValue());
workbook.save("output.xlsx");
}
サポートされている形式
| 形式 | 拡張子 | 読み取り | 書き込み |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
オープンソースとライセンス
Aspose.Cells FOSS for Java は MIT ライセンスの下でリリースされています。あなたは個人、オープンソース、商用プロジェクトで制限なく使用、
変更、配布することが自由です。ソースコードは以下で入手可能です
github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java。