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
- Unisci le celle in un foglio di lavoro di Excel usando C++
- Separa le celle in un foglio di lavoro di Excel usando C++
- Unisci un intervallo di celle in un foglio di lavoro di Excel usando C++
- Separa un intervallo di celle in un foglio di lavoro di Excel usando C++
- Unisci le celle di un intervallo denominato in un foglio di lavoro di Excel utilizzando 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.
- Innanzitutto, crea un’istanza della classe IWorkbook.
- Recupera il foglio di lavoro utilizzando il metodo IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Recupera le celle utilizzando il metodo IWorksheet->GetICells().
- Unisci le celle usando ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns).
- Applica gli stili alle celle unite.
- Infine, salva il file Excel di output utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
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")));
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.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera il foglio di lavoro contenente le celle unite utilizzando il metodo IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Recupera le celle utilizzando il metodo IWorksheet->GetICells().
- Separa le celle usando ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns).
- Infine, salva il file Excel di output utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
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")));
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.
- Innanzitutto, crea un’istanza della classe IWorkbook.
- Recupera il foglio di lavoro desiderato utilizzando il metodo IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Inserisci i dati nella cella.
- Crea l’intervallo usando IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String indirizzo) metodo.
- Unisci l’intervallo usando il metodo IRange->Merge().
- Infine, salva il file Excel di output utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
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")));
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.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera il foglio di lavoro contenente le celle unite utilizzando il metodo IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Crea l’intervallo usando IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String indirizzo) metodo.
- Separa l’intervallo usando il metodo IRange->UnMerge().
- Infine, salva il file Excel di output utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
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")));
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.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recuperare il foglio di lavoro utilizzando il metodo IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Crea l’intervallo usando IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String indirizzo) metodo.
- Impostare il nome dell’intervallo utilizzando IRange->SetName(intrusiveptrAspose::Cells::Systems::String valore).
- Crea e applica stili all’intervallo denominato.
- Unisci le celle dell’intervallo denominato utilizzando il metodo IRange->Merge().
- Infine, salva il file Excel di output utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String nomefile).
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")));
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.