Introduzione
La classe Cell è l’unità fondamentale in Aspose.Cells FOSS per Java. Memorizza valori tipizzati, espone il loro tipo a runtime tramite l’enumerazione CellValueType, conserva le stringhe di formula affinché Excel le valuti e fornisce una rappresentazione stringa uniforme tramite getStringValue(). Questo post esamina in dettaglio l’API core delle celle con esempi verificati.
Tutti gli esempi di codice seguenti utilizzano la dipendenza Maven:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
Core Cell API
Memorizzazione di valori tipizzati con putValue()
Cell.putValue() accetta sei tipi Java: String, int, double, boolean,
LocalDateTime e Object. Ogni chiamata imposta il valore interno della cella e determina
il CellValueType restituito da cell.getType().
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");
}
Celle vuote restituiscono CellValueType.BLANK da getType(). I valori interi memorizzati con
putValue(int) round‑trip attraverso la serializzazione XLSX senza acquisire un punto decimale —
getStringValue() restituisce "123" non "123.0".
Ispezione dei valori a runtime
cell.getValue() restituisce il valore grezzo memorizzato come Object. cell.getStringValue() restituisce una rappresentazione stringa indipendente dalla locale adatta per l’elaborazione a valle o la visualizzazione. Il branching su CellValueType è il modello consigliato per l’estrazione di valori con sicurezza di tipo:
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");
}
Archiviazione della formula
Le stringhe di formula sono memorizzate con cell.setFormula(). La stringa di formula memorizzata inizia
con = e segue la sintassi standard delle formule di Excel. Il metodo getType() restituisce
CellValueType.FORMULA per le celle di formula. Aspose.Cells FOSS per Java memorizza e
round-trips le formule in XLSX; la formula viene ricalcolata da Excel all’apertura.
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 Fedeltà del round‑trip
Tutti i valori tipizzati sono conservati durante la serializzazione e il ricaricamento di XLSX. Il caricamento di un
file .xlsx esistente utilizza new Workbook(path) o new Workbook(path, options) con
LoadOptions per abilitare la modalità di riparazione. Dopo il ricaricamento, getType() e getStringValue()
restituiscono gli stessi valori come al momento della scrittura.
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");
}
Formati supportati
| Formato | Estensione | Lettura | Scrittura |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
Open Source e Licenze
Aspose.Cells FOSS per Java è rilasciato sotto licenza MIT. Sei libero di usarlo, modificarlo e distribuirlo in progetti personali, open‑source e commerciali senza restrizioni. Il codice sorgente è disponibile su github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.