Travailler avec le Spreadsheet Management
Travailler avec le Spreadsheet Management
Ce guide montre comment créer, charger, modifier et enregistrer les livres d’excel à l’aide de Aspose.Cells FOSS pour Java. Workbook, WorksheetCollection, Worksheet, Cells,et Cell Cours de gestion des feuilles d’écran fin à fin.
Créer un nouveau livre de travail
Utilisez le constructeur sans arguments pour créer un livre de travail vide. nommé Sheet1 Il est ajouté automatiquement.
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;
Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
System.out.println("Sheet name: " + sheet.getName()); // Sheet1Télécharger un livre de travail d’un fichier
Passez un fichier à la route de Workbook(fileName) Le constructeur ouvre un bâtiment existant .xlsx ou .ods Fiche : Utiliser Workbook(fileName, options) pour fournir LoadOptions Quand vous avez besoin Pour contrôler la détection de format ou le traitement par mot de passe.
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.LoadOptions;
// Simple load
Workbook workbook = new Workbook("data/report.xlsx");
// Load with explicit options
LoadOptions opts = new LoadOptions();
Workbook workbookWithOpts = new Workbook("data/report.xlsx", opts);Lâcher un livre de travail d’un courant
Workbook(stream) et Workbook(stream, options) Accepter tout java.io.InputStream. Ceci est utile lorsque le fichier provient d’un réseau, d’une base de données BLOB ou d ́un In-mémorisation de la byte.
import com.aspose.cells.foss.Workbook;
import java.io.FileInputStream;
import java.io.InputStream;
try (InputStream is = new FileInputStream("data/template.xlsx")) {
Workbook workbook = new Workbook(is);
System.out.println("Worksheets: " + workbook.getWorksheets().getCount());
}Accès et gestion des feuilles de travail
Workbook.getWorksheets() Retour à A WorksheetCollection.- Retrir les feuilles par index ou par nom, iterez sur toutes les feuilles et ajoutez ou supprimez les listes selon le besoin.
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;
Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
// Access by index
Worksheet first = sheets.get(0);
System.out.println(first.getName()); // Sheet1
// Add a named sheet
int idx = sheets.add("Summary");
Worksheet summary = sheets.get(idx);
summary.setName("Summary");
// Iterate all sheets
for (Worksheet ws : sheets) {
System.out.println("Sheet: " + ws.getName());
}
// Remove a sheet by name
sheets.removeAt("Sheet1");
System.out.println("Remaining sheets: " + sheets.getCount());Lire et écrire des valeurs cellulaires
Naviguer vers une cellule en utilisant Worksheet.getCells(),qui revient à Cells La collection. Rétrouvez A Cell par nom (p. ex. "A1") ou par index de ligne/colonne basé sur zéro. putValue() d’écrire des valeurs primitives et de getValue() / getStringValue() Pour lire Les retourner.
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Worksheet;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;
Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
Cells cells = sheet.getCells();
// Write values
cells.get("A1").putValue("Product");
cells.get("B1").putValue("Units Sold");
// Write by row/column index (0-based)
Cell a2 = cells.get(1, 0);
a2.putValue("Widget A");
Cell b2 = cells.get(1, 1);
b2.putValue(1200);
// Read back
System.out.println(a2.getStringValue()); // Widget A
System.out.println(b2.getValue()); // 1200Formule cellulaire
Assignez une ligne de formule à une cellule par setFormula().Les cellules évaluent les formules lorsque le livre de travail est sauvé ou lorsque la calculation est explicitement déclenchée.
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;
Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Cells cells = sheets.get(0).getCells();
cells.get("A1").putValue(100);
cells.get("A2").putValue(200);
Cell a3 = cells.get("A3");
a3.setFormula("=SUM(A1:A2)");
System.out.println("Formula: " + a3.getFormula()); // =SUM(A1:A2)Économiser un livre de travail
Utiliser Workbook.save(fileName) pour écrire le livre de travail sur disque.Le format d’exposition est déterminé par l’extension de fichier ; utilisation .xlsx Les livres de travail Excel.
import com.aspose.cells.foss.Workbook;
Workbook workbook = new Workbook();
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello");
// Save to file -- format inferred from .xlsx extension
workbook.save("output/result.xlsx");libération des ressources
Workbook Implémentations AutoCloseable.Utilisez un bloc de ressources pour assurer la Les ressources internes du livre de travail sont libérées immédiatement après utilisation.
import com.aspose.cells.foss.Workbook;
try (Workbook workbook = new Workbook("data/large.xlsx")) {
workbook.save("output/large_modified.xlsx");
}
// workbook.close() called automaticallyConseils et meilleures pratiques
- Utilisez toujours des ressources (
try (Workbook wb = new Workbook(...))Pour la grande fichiers pour éviter de tenir les dossiers ouverts. - Préférez
cells.get(row, column)surcells.get(cellName)dans les chauds ; le Le surcharge complet évite la partage répétée des noms cellulaires. - Appel à
workbook.getWorksheets().getCount()avant d’accéder aux feuilles par index pour éviterIndexOutOfBoundsException. - Nommez explicitement vos pages avec
setName()Aprèsadd()Le code downstream peut être On les regarde par nom plutôt que par index fragile. - Ne vous souciez pas des résultats immédiatement après la formule.
setFormula();- enregistrer d’abord ou Récupérer si vous avez besoin de valeurs calculées dans la même session.
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
WorkbookLoadException sur new Workbook(fileName) | Fail de route incorrect ou fichiers bloqués | Vérifiez que le chemin existe et est lisible; fermez d’autres applications qui maintiennent le fichier |
get(index) Jouer IndexOutOfBoundsException | Index au-delà de la getCount() - 1 | Vérifier sheets.getCount() avant l’accès ; utilisation add() Pour créer une nouvelle feuille de |
La cellule de formule est rentrée vide getValue() | Formules non auto-calculées en mémoire | Sauver le livre de travail et le récharger pour obtenir les résultats de la formule |
Le fichier est corrompu après save() | Extension fausse de fichier | Assurez-vous que le nom du fichier se termine avec .xlsx;Le format est déduit de l’extension |
FAQ
Comment renommer un feuillet de travail ?
Retrée le Worksheet l’indice de l’objet par index WorksheetCollection et appeler setName(name) Avec le nouveau nom de l’affichage :
workbook.getWorksheets().get(0).setName("Sales Data");Comment puis-je vérifier combien de feuilles un livre d’œuvre a ?
Appel à getCount() sur le WorksheetCollection Retourné par Workbook.getWorksheets() Pour obtenir le nombre total de feuilles d’œuvre :
int count = workbook.getWorksheets().getCount();Puis-je ajouter plusieurs feuilles dans une seule appel ?
No. La téléphonie worksheets.add(sheetName) Chaque appel revient l’indice de la Nouveau panneau créé.
Comment vérifier le type de valeur d’une cellule ?
Retrée le Cell par nom et appel getType(),qui revient à CellValueType Valeur enum :
Cell cell = cells.get("A1");
System.out.println(cell.getType()); // CellValueType enum valueLe résumé de référence API
| Classes / Méthodes | Description |
|---|---|
Workbook() | Créer un livre de travail vide avec une feuille blanche |
Workbook(fileName) | Télécharger un livre de travail d’un chemin de fichier |
Workbook(stream) | Il remplit un livre d’œuvre à partir d’un InputStream |
Workbook(fileName, options) | Il est chargé d’un livre de travail avec LoadOptions |
Workbook.getWorksheets() | Retourner le WorksheetCollection |
Workbook.save(fileName) | Économiser sur un fichier (format déduit de l’extension) |
Workbook.save(stream, format) | Épargner à un flux avec explicité SaveFormat |
WorksheetCollection.get(index) | Retourner le fichier par index basé sur zéro |
WorksheetCollection.get(name) | Retourner le fichier par nom |
WorksheetCollection.add(sheetName) | Ajouter une feuille nommée; retourner son index |
WorksheetCollection.getCount() | Nombre de feuilles dans le livre d’oeuvre |
WorksheetCollection.removeAt(sheetName) | Supprimer une feuille par nom |
Worksheet.getCells() | Retourner le Cells Collections pour cette feuille |
Worksheet.getName() / setName() | Obtenez ou définissez le nom de la feuille de table |
Cells.get(cellName) | Retour à A Cell par nom (par exemple « A1 ») |
Cells.get(row, column) | Retour à A Cell par null-basé ligne/colonne |
Cell.putValue(value) | Écrivez une valeur à la cellule |
Cell.getValue() | Il réalise la valeur cellulaire comme Object |
Cell.getStringValue() | Il réalise la valeur cellulaire comme un String |
Cell.setFormula(formula) | Définir une ligne de formule (par exemple «=SUM(A1:A2) ») |
LoadOptions | Configuration pour le chargement du livre de travail |
SaveFormat | Enumé de constants de format (formate est déduite par l’extension du fichier ; pas passée à save()) |