L’unione e la separazione delle celle è una funzionalità semplice e comunemente utilizzata di Microsoft Excel. L’unione di celle potrebbe rivelarsi utile in scenari, ad esempio, quando si dispone di un foglio di lavoro con più colonne che condividono la stessa intestazione. Puoi unire le celle sopra le colonne per dare loro un’intestazione comune. Nel caso in cui le celle unite non siano più necessarie, puoi separarle altrettanto facilmente. Potrebbe essere necessario eseguire queste attività all’interno delle applicazioni C++. Per questo, questo articolo ti insegnerà come unire e separare le celle nei fogli di lavoro di Excel a livello di codice usando C++.

API C++ per unire e separare le celle

Aspose.Cells for C++ è una libreria C++ nativa che consente di creare, leggere e modificare file Excel senza richiedere l’installazione di Microsoft Excel. L’API supporta anche l’unione e la separazione delle celle in un foglio di lavoro di Excel. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.

PM> Install-Package Aspose.Cells.Cpp

Unisci le celle in un foglio di lavoro di Excel usando C++

In questo esempio, creeremo un foglio di lavoro Excel vuoto e uniremo alcune celle seguendo i passaggi indicati di seguito.

Il codice di esempio seguente mostra come unire le celle in un foglio di lavoro di Excel usando C++.

// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");

// Carica il file Excel di input
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Accedi al primo foglio di lavoro nel file Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Crea un oggetto Celle per recuperare tutte le celle.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// Unire le celle
cells->Merge(5, 2, 2, 3);

// Metti i dati nella cella
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));

// Crea un oggetto Stile 
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();

// Crea un oggetto Font
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();

// Imposta il nome
font->SetName(new String("Times New Roman"));

// Imposta la dimensione del carattere
font->SetSize(18);

// Imposta il colore del carattere
font->SetColor(Systems::Drawing::Color::GetCyan());

// Rendi il testo in grassetto
font->SetBold(true);

// Rendi il testo in corsivo
font->SetItalic(true);

// Imposta il colore di primo piano
style->SetForegroundColor(Systems::Drawing::Color::GetRed());

// Imposta il modello
style->SetPattern(BackgroundType_Solid);

// Applica lo stile
cells->GetICell(5, 2)->SetIStyle(style);

// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Immagine del file Excel di output generato dal codice di esempio

Immagine del file Excel di output generato dal codice di esempio

Separa le celle in un foglio di lavoro di Excel usando C++

Di seguito sono riportati i passaggi per separare le celle in un foglio di lavoro di Excel.

Il codice di esempio seguente illustra come separare le celle in un foglio di lavoro di Excel usando C++.

// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");

// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");

// Carica il file Excel di input
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));

// Accedi al primo foglio di lavoro nel file Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Crea un oggetto Celle per recuperare tutte le celle.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// Separa le celle.
cells->UnMerge(5, 2, 2, 3);

// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Immagine del file Excel di output generato dal codice di esempio

Immagine del file Excel di output generato dal codice di esempio

Unisci un intervallo di celle in un foglio di lavoro di Excel usando C++

Di seguito sono riportati i passaggi per unire un intervallo di celle in un foglio di lavoro di Excel.

Il codice di esempio seguente mostra come unire un intervallo di celle in un foglio di lavoro di Excel usando C++.

// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");

// Carica il file Excel di input
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Accedi al primo foglio di lavoro nel file Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Immettere i dati nella cella A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// Crea un intervallo
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Unisci l'intervallo in una singola cella
range->Merge();

// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Immagine del file Excel di output generato dal codice di esempio

Immagine del file Excel di output generato dal codice di esempio

Separa un intervallo di celle in un foglio di lavoro di Excel usando C++

Di seguito sono riportati i passaggi per separare un intervallo di celle in un foglio di lavoro di Excel.

Il codice di esempio seguente mostra come separare un intervallo di celle in un foglio di lavoro di Excel usando C++.

// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");

// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");

// Carica il file Excel di input
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// Accedi al primo foglio di lavoro nel file Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Crea un intervallo
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Intervallo Unmerge
range->UnMerge();

// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Immagine del file Excel di output generato dal codice di esempio

Immagine del file Excel di output generato dal codice di esempio

Unisci le celle di un intervallo denominato in un foglio di lavoro di Excel utilizzando C++

Aspose.Cells per C++ offre anche la possibilità di unire le celle di un intervallo denominato. Per raggiungere questo obiettivo, seguire i passaggi indicati di seguito.

Il codice di esempio seguente illustra come unire le celle di un intervallo denominato utilizzando C++.

// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");

// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");

// Carica il file Excel di input
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// Accedi al primo foglio di lavoro nel file Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Crea un intervallo
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Imposta il nome dell'intervallo
range->SetName(new String("Named_Range"));

// Definisci oggetto di stile
intrusive_ptr<IStyle> style = workbook->CreateIStyle();

// Imposta l'allineamento orizzontale
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);

// Crea un oggetto StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();

// Imposta l'allineamento orizzontale to true
styleFlag->SetHorizontalAlignment(true);

// Applicare lo stile all'intervallo
range->ApplyIStyle(style, styleFlag);

// Metti i dati nell'intervallo
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// Unisci intervallo
range->Merge();

// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Immagine del file Excel di output generato dal codice di esempio

Immagine del file Excel di output generato dal codice di esempio

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come unire e separare le celle in un foglio di lavoro di Excel usando C++. Inoltre, hai visto come unire e separare intervalli e intervalli denominati usando Aspose.Cells per l’API C++. L’API fornisce molte funzionalità aggiuntive per lavorare con i file Excel che puoi esplorare in dettaglio visitando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul nostro forum di supporto gratuito.

Guarda anche