Lavorare con la gestione dei fogli di calcolo
Lavorare con la gestione dei fogli di calcolo
La classe Workbook è il punto di ingresso per tutte le operazioni sui fogli di calcolo in Aspose.Cells FOSS per C++. Fornisce metodi per creare nuovi workbook, caricare file XLSX esistenti, gestire i worksheet e salvare il risultato.
Creare un nuovo workbook
Istanziare Workbook per creare un workbook vuoto. Un worksheet predefinito viene creato automaticamente.
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
using namespace Aspose::Cells_FOSS;
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Summary");
workbook.Save("output.xlsx");
return 0;
}Caricare un workbook esistente
Passare un percorso file al costruttore Workbook per caricare un file XLSX esistente. Dopo il caricamento, i worksheet e i dati delle celle sono immediatamente accessibili.
Workbook workbook("existing.xlsx");
Worksheet& sheet = workbook.GetWorksheets()[0];
// Access or modify cells here
workbook.Save("modified.xlsx");Configurare le proprietà del worksheet
La classe Worksheet espone le proprietà di visualizzazione e protezione. Usa queste per configurare la visibilità del foglio, la visualizzazione della griglia, lo zoom e il colore della scheda.
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Data");
sheet.SetShowGridlines(false);
sheet.SetShowRowColumnHeaders(true);
sheet.SetZoom(80);Proteggere e rimuovere la protezione di un foglio di lavoro
Chiama Worksheet::Protect per bloccare un foglio contro le modifiche e Worksheet::Unprotect per rimuovere la protezione:
sheet.Protect("password");
// ... distribute the workbook ...
sheet.Unprotect("password");Garantire l’unicità del foglio e l’ambito dei nomi definiti
Quando aggiungi più fogli di lavoro programmaticamente, usa Workbook::EnsureUniqueSheetName per evitare collisioni di nomi. Usa Workbook::EnsureValidDefinedNameScope per convalidare che i nomi definiti siano correttamente in ambito.
workbook.EnsureUniqueSheetName();
workbook.EnsureUniqueDefinedName();Salvataggio di una cartella di lavoro
Chiama Workbook::Save(fileName) per scrivere la cartella di lavoro su disco. Diverse overload accettano un nome file, uno stream o un SaveFormat esplicito.
workbook.Save("products.xlsx");Suggerimenti e migliori pratiche
- Chiama sempre
Workbook::Dispose()quando hai finito con una cartella di lavoro per rilasciare le risorse non gestite. - I nomi dei fogli di lavoro devono essere univoci all’interno di una cartella di lavoro — usa
EnsureUniqueSheetNamedopo aggiunte in batch. - Imposta
Worksheet::SetShowGridlines(false)per i fogli in stile presentazione per migliorare la leggibilità. - Usa
Worksheet::SetZoom(value)per impostare un livello di zoom predefinito (percentuale) per le visualizzazioni dei fogli di lavoro. - I colori delle schede assegnati tramite
Worksheet::SetTabColoraiutano gli utenti a distinguere visivamente i fogli di lavoro.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| File non trovato durante il caricamento | Percorso errato | Usa un percorso assoluto o verifica la directory di lavoro |
| Collisione del nome del foglio | Nomi duplicati quando si aggiungono fogli | Chiama EnsureUniqueSheetName() dopo ogni aggiunta |
| Modifiche al workbook non salvate | Save non chiamato | Chiama sempre workbook.Save(path) prima dell’uscita |
| Avvisi di perdita di memoria | Dispose non chiamato | Chiama workbook.Dispose() alla fine dell’ambito |
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Workbook() | Crea un nuovo workbook vuoto |
Workbook(filePath) | Carica un file XLSX esistente |
Workbook::Save(fileName) | Salva il workbook su disco |
Workbook::EnsureUniqueSheetName() | Risolvi i nomi dei fogli duplicati |
Workbook::Dispose() | Rilascia le risorse |
Worksheet::SetName(name) | Rinomina il foglio di lavoro |
Worksheet::SetShowGridlines(bool) | Attiva/disattiva la visibilità delle linee della griglia |
Worksheet::SetZoom(percent) | Imposta la percentuale di zoom predefinita |
Worksheet::Protect(password) | Blocca il foglio di lavoro |
Worksheet::Unprotect(password) | Sblocca il foglio di lavoro |