Crea file Excel in C++

In precedenza, ho scritto un post su come implementare le funzionalità di automazione di Excel e creare file XLS/XLSX di Excel da zero utilizzando C#. Oggi ti mostrerò come creare cartelle di lavoro Excel, inserire dati in fogli di lavoro Excel, calcolare formule e creare grafici e tabelle in fogli di lavoro utilizzando C++. Tutte le funzionalità di automazione del foglio di calcolo saranno alimentate dall’API C++ Excel - Aspose.Cells for C++.

Aspose.Cells per C++ è una libreria C++ nativa che consente di creare, leggere, analizzare e convertire fogli di calcolo senza richiedere Microsoft Excel. Fornisce un set completo di funzionalità di automazione di Excel che possono essere utilizzate per generare e manipolare fogli di calcolo XLS/XLSX. In questo articolo, tratteremo le seguenti funzionalità per la creazione di file XLS/XLSX di Excel da zero.

API C++ per fogli di calcolo Excel - Installazione

È possibile scaricare il pacchetto completo di file di libreria di Aspose.Cells per C++ dalla sezione Download. Il pacchetto contiene anche un’applicazione console di esempio pronta per l’esecuzione.

Crea file Excel (XLS/XLSX) usando C++

Per prima cosa creiamo una semplice cartella di lavoro XLSX di Excel da zero. Una cartella di lavoro è composta da uno o più fogli di lavoro e ogni foglio di lavoro contiene i dati sotto forma di righe e colonne. Pertanto, per creare un foglio di calcolo Excel, è necessario prima creare una cartella di lavoro e quindi aggiungervi fogli di lavoro. Di seguito sono riportati i passaggi per creare un file Excel utilizzando Aspose.Cells per C++.

L’esempio di codice seguente mostra come creare un file XLSX di Excel usando C++.

Cartella di lavoro Excel

Quello che segue è lo screenshot della cartella di lavoro di Excel che abbiamo appena creato.

Crea Excel XLSX in C++

Aggiungi dati a un foglio di lavoro Excel usando C++

Nell’esempio precedente, abbiamo visto come creare un semplice file Excel e inserire un valore in una cella particolare utilizzando l’indice di riga e colonna. Tuttavia, molto spesso le celle nei fogli di lavoro di Excel vengono identificate utilizzando la lettera della colonna e i numeri di riga come A1, A2, B1 e così via. Diamo un’occhiata all’esempio di come inserire dati nel foglio di lavoro utilizzando i nomi delle celle. Il processo differisce solo per l’aggiunta di valore alla cella e tutti gli altri passaggi della creazione della cartella di lavoro e dei fogli di lavoro di Excel sono gli stessi.

L’esempio di codice seguente mostra come creare una cartella di lavoro XLSX di Excel e inserirvi dati usando C++.

Calcola le formule della cartella di lavoro usando C++

L’impostazione di formule nelle cartelle di lavoro di Excel è una funzionalità straordinaria per eseguire calcoli sui dati. Rende molto più semplice eseguire calcoli complessi sui dati in modo efficace ed efficiente. Di seguito sono riportati i passaggi per impostare e calcolare le formule nei fogli di lavoro di Excel.

L’esempio di codice seguente mostra come aggiungere e calcolare formule in una cartella di lavoro XLSX di Excel usando C++.

Crea tabelle in un foglio di lavoro Excel usando C++

Le tabelle nei fogli di lavoro di Excel vengono utilizzate per organizzare un gruppo di dati situato in un intervallo di celle. Le tabelle aiutano anche a mantenere diversi tipi di elenchi nei fogli di lavoro. Di seguito sono riportati i passaggi per creare una tabella nel foglio di lavoro di Excel.

  • Crea una nuova cartella di lavoro di Excel utilizzando la classe IWorkbook.
  • Accedi al foglio di lavoro predefinito nell’oggetto IWorksheet o aggiungine uno nuovo.
  • Inserisci valore/dati nelle celle nello stesso modo in cui abbiamo fatto nell’esempio precedente.
  • Aggiungi l’intervallo di celle alla raccolta Lists del foglio di lavoro utilizzando il metodo IWorksheet->GetIListObjects()->Add().
  • Ottieni l’elenco nell’oggetto IListObject.
  • Applicare lo stile alla tabella utilizzando il metodo IListObject->SetTableStyleType().
  • Salva la cartella di lavoro come file .xlsx.

L’esempio di codice seguente mostra come creare una tabella nel file XLSX di Excel usando C++.

// Istanziare un oggetto cartella di lavoro
intrusive_ptr<IWorkbook>  workbook = Factory::CreateIWorkbook();

// Ottenere il riferimento del foglio di lavoro predefinito(primo).
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Ottenere la raccolta di celle del foglio di lavoro
intrusive_ptr<ICells> cells = worksheet->GetICells();

// Impostazione del valore sulle celle
cells->GetObjectByIndex(new String("A1"))->PutValue("Employee");
cells->GetObjectByIndex(new String("B1"))->PutValue("Quarter");
cells->GetObjectByIndex(new String("C1"))->PutValue("Product");
cells->GetObjectByIndex(new String("D1"))->PutValue("Continent");
cells->GetObjectByIndex(new String("E1"))->PutValue("Country");
cells->GetObjectByIndex(new String("F1"))->PutValue("Sale");

cells->GetObjectByIndex(new String("A2"))->PutValue("David");
cells->GetObjectByIndex(new String("A3"))->PutValue("David");
cells->GetObjectByIndex(new String("A4"))->PutValue("David");
cells->GetObjectByIndex(new String("A5"))->PutValue("David");
cells->GetObjectByIndex(new String("A6"))->PutValue("James"); 

cells->GetObjectByIndex(new String("B2"))->PutValue(1);
cells->GetObjectByIndex(new String("B3"))->PutValue(2);
cells->GetObjectByIndex(new String("B4"))->PutValue(3);
cells->GetObjectByIndex(new String("B5"))->PutValue(4);
cells->GetObjectByIndex(new String("B6"))->PutValue(1); 

cells->GetObjectByIndex(new String("C2"))->PutValue("Maxilaku");
cells->GetObjectByIndex(new String("C3"))->PutValue("Maxilaku");
cells->GetObjectByIndex(new String("C4"))->PutValue("Chai");
cells->GetObjectByIndex(new String("C5"))->PutValue("Maxilaku");
cells->GetObjectByIndex(new String("C6"))->PutValue("Chang"); 

cells->GetObjectByIndex(new String("D2"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D3"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D4"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D5"))->PutValue("Asia");
cells->GetObjectByIndex(new String("D6"))->PutValue("Europe"); 

cells->GetObjectByIndex(new String("E2"))->PutValue("China");
cells->GetObjectByIndex(new String("E3"))->PutValue("India");
cells->GetObjectByIndex(new String("E4"))->PutValue("Korea");
cells->GetObjectByIndex(new String("E5"))->PutValue("India");
cells->GetObjectByIndex(new String("E6"))->PutValue("France"); 

cells->GetObjectByIndex(new String("F2"))->PutValue(2000);
cells->GetObjectByIndex(new String("F3"))->PutValue(500);
cells->GetObjectByIndex(new String("F4"))->PutValue(1200);
cells->GetObjectByIndex(new String("F5"))->PutValue(1500);
cells->GetObjectByIndex(new String("F6"))->PutValue(500);  


// Aggiunta di un nuovo oggetto elenco al foglio di lavoro
worksheet->GetIListObjects()->Add(new String("A1"), new String("F6"), true);
intrusive_ptr<IListObject> listObject = worksheet->GetIListObjects()->GetObjectByIndex(0);

// Aggiunta dello stile predefinito alla tabella
listObject->SetTableStyleType(TableStyleType_TableStyleMedium10);

// Mostra totale
listObject->SetShowTotals(true);

// Salvataggio del file Excel
workbook->Save(resultPath->StringAppend(new String("Excel_Table.xlsx")));

Cartella di lavoro Excel con tabella

Crea tabella in Excel in C++

Crea grafici in un foglio di calcolo Excel usando C++

I grafici nei fogli di calcolo Excel vengono utilizzati per visualizzare i dati utilizzando diversi tipi di oggetti grafici. Ci danno una rapida visione e comprensione dei dati, in particolare quando i dati sono enormi. Aspose.Cells per C++ supporta una varietà di grafici tra cui Sunburst, Treemap, Histogram, Pyramid, Bubble, Line e molti altri. Di seguito sono riportati i passaggi per creare un grafico nella cartella di lavoro di Excel usando Aspose.Cells per C++.

  • Crea una nuova cartella di lavoro di Excel.
  • Accedi al foglio di lavoro desiderato nell’oggetto IWorksheet.
  • Aggiungi un nuovo grafico al foglio di lavoro usando il metodo IWorksheet->GetICharts()->Add() passando il tipo di grafico.
  • Accedi al grafico appena aggiunto nell’oggetto IChart.
  • Impostare l’origine dati per il grafico utilizzando il metodo IChart->GetNISeries()->Add().
  • Salva la cartella di lavoro come file .xlsx.

L’esempio di codice seguente mostra come creare un grafico nel file XLSX di Excel usando C++.

// Percorso del file excel di output
StringPtr outputChartTypePyramid = resultPath->StringAppend(new String("Exce_Pyramid_Chart.xlsx"));

// Crea una nuova cartella di lavoro
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Ottieni il primo foglio di lavoro creato per impostazione predefinita
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Aggiunta di valori di esempio alle celle
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// Aggiunta di un grafico al foglio di lavoro
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// Accesso all'istanza del grafico appena aggiunto
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Aggiunta di SeriesCollection (origine dati grafico) al grafico che va dalla cella "A1" a "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Salvataggio del file Excel
workbook->Save(outputChartTypePyramid);

Cartella di lavoro Excel con grafico

Crea grafico in Excel in C++

Conclusione

In questo articolo, abbiamo spiegato come creare fogli di calcolo MS Excel da zero utilizzando C++. L’articolo contiene anche linee guida dettagliate ed esempi di codice su come creare tabelle, grafici e calcolare formule nei fogli di lavoro di Excel. Puoi saperne di più su altre funzionalità avanzate relative all’automazione di Excel dalla documentazione di Aspose.Cells per C++.

Articolo correlato