Come creare e popolare un modello di dati di foglio di calcolo in C++

Come creare e popolare un modello di dati di foglio di calcolo in C++

Questa guida mostra come creare una cartella di lavoro, popolare le celle con valori e formule, applicare stili e salvare come file di foglio di calcolo utilizzando la libreria Aspose.Cells FOSS per C++. Le classi principali coinvolte sono Workbook, Worksheet, Cell e Style.

Guida passo-passo

Passo 1: Configurare la build

Aggiungi la libreria Cells FOSS al tuo progetto CMake e collega il target Aspose.Cells.Foss.Cpp:

cmake_minimum_required(VERSION 3.15)
project(CreateSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(CreateSpreadsheet main.cpp)
target_link_libraries(CreateSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)

Passo 2: Includere gli header e impostare lo spazio dei nomi

Includi gli header per classe da aspose/cells_foss/ per ogni classe che usi (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), quindi apri lo spazio dei nomi Aspose::Cells_FOSS:

using namespace Aspose::Cells_FOSS;

Passo 3: Crea una cartella di lavoro e assegna un nome al foglio

Istanzia Workbook, recupera il primo foglio di lavoro tramite GetWorksheets()[0] e imposta il suo nome visualizzato:

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    sheet.SetName("Sales");
    return 0;
}

Passo 4: Aggiungi valori alle celle

Chiama GetCells()["A1"].PutValue() per scrivere stringhe di testo, valori numerici e booleani in celle individuali per indirizzo:

sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["A3"].PutValue("Gadget");
sheet.GetCells()["B3"].PutValue(24.99);

Passo 5: Imposta una formula

Chiama SetFormula() su una cella per memorizzare una stringa di formula compatibile con Excel; la formula viene valutata da Excel quando il file viene aperto:

sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");

Passo 6: Applica lo stile alle celle

Ottieni lo stile con Cell::GetStyle(), modificalo e applicalo con Cell::SetStyle(style):

Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);
sheet.GetCells()["B1"].SetStyle(headerStyle);

Passo 7: Unisci celle

Usa Cells::Merge per combinare un intervallo in una singola cella:

CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);

Passo 8: Salva la cartella di lavoro

Chiama workbook.Save() con un nome file per scrivere il foglio di calcolo come file XLSX, poi chiama Dispose() per rilasciare le risorse:

workbook.Save("sales.xlsx");
workbook.Dispose();

Problemi comuni e soluzioni

Stile non applicato dopo il salvataggio Chiama sempre Cell::SetStyle(style) dopo aver modificato l’oggetto stile. Modificare direttamente lo stile restituito non applica le modifiche; è necessario impostarlo nuovamente esplicitamente.

Formula memorizzata come stringa letterale Usa SetFormula("=SUM(...)") not PutValue("=SUM(...)"). PutValue tratta l’argomento come una stringa letterale, non come una formula.

Cella unita non visualizzata correttamente Assicurati che i parametri di unione (row, column, rowCount, columnCount) coprano correttamente l’intervallo previsto. Le unioni sovrapposte non sono supportate.

Il workbook non ha fogli dopo la costruzione Un foglio predefinito è sempre creato da Workbook(). Call GetWorksheets()[0] per accedervi.

Dispose non chiamato Chiama sempre workbook.Dispose() per rilasciare le risorse, soprattutto nelle applicazioni a lungo termine.

Domande frequenti

Posso aggiungere più fogli di lavoro a un unico workbook?

Sì. Usa Workbook::GetWorksheets() per accedere alla collezione e aggiungere fogli programmaticamente. Assicurati che ogni foglio abbia un nome univoco usando Workbook::EnsureUniqueSheetName().

Come impostare un formato numerico per una cella?

Usa Style::SetNumberFormat(format) prima di chiamare Cell::SetStyle(style). Le stringhe di formato seguono la sintassi standard dei formati numerici di Excel.

Posso applicare lo stesso stile a più celle?

Sì. Ottieni lo stile una volta, modificalo, quindi chiama SetStyle(style) su ogni cella di destinazione.

La formula viene valutata al salvataggio?

No. La valutazione della formula avviene in Excel o in un lettore compatibile quando il file viene aperto. La libreria scrive la stringa della formula nella cella.

Quante righe e colonne può contenere un foglio di lavoro?

Ogni foglio di lavoro contiene dati su tutta la sua griglia di righe e colonne, seguendo le dimensioni standard dei fogli di calcolo.

Vedi anche

 Italiano