La copia di righe e colonne è un’attività comune che viene eseguita mentre si lavora con i file Excel. Potrebbero verificarsi situazioni in cui è necessario copiare righe o colonne nei file Excel a livello di codice. In questi casi, questo articolo ti insegnerà come copiare righe e colonne in file Excel usando C++.
- API C++ per copiare righe e colonne in file Excel
- Copia una singola riga in un file Excel usando C++
- Copia di più righe in un file Excel utilizzando C++
- Copia una singola colonna in un file Excel usando C++
- Copia di più colonne in un file Excel utilizzando C++
API C++ per copiare righe e colonne in file Excel
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 offre anche la possibilità di copiare righe e colonne in file Excel. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.
PM> Install-Package Aspose.Cells.Cpp
Copia una singola riga in un file Excel usando C++
Quella che segue è l’immagine del file Excel di origine che useremo nei seguenti esempi.
![Foglio di lavoro di origine](images/CopyRowsAndColumnsSource.jpg#center)
Di seguito sono riportati i passaggi per copiare una singola riga in un file Excel utilizzando C++.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera il foglio di lavoro in cui desideri copiare la riga.
- Copia la riga usando CopyIRow(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex).
- Salvare il file Excel utilizzando IWorkbook->Salva(intrusiveptrAspose::Cells::Systems::String nomefile).
Il codice di esempio seguente mostra come copiare una riga in un file di Excel usando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Ottieni il primo foglio di lavoro
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copia riga
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);
// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
![Immagine che mostra la riga copiata](images/CopyRow.jpg#center)
Immagine che mostra la riga copiata
Copia di più righe in un file Excel utilizzando C++
Per copiare più righe, utilizzeremo il metodo CopyIRows che accetta un parametro aggiuntivo che indica il numero totale di righe da copiare. Per copiare più righe, segui i passaggi indicati di seguito.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera il foglio di lavoro in cui desideri copiare le righe.
- Copia le righe usando CopyIRows(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex, Aspose::Cells::Systems::Int32 rowNumber).
- Salvare il file Excel utilizzando IWorkbook->Salva(intrusiveptrAspose::Cells::Systems::String nomefile).
Il codice di esempio seguente mostra come copiare più righe in un file di Excel usando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Ottieni il primo foglio di lavoro
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copia righe
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);
// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
![Immagine che mostra le righe copiate](images/CopyRows.jpg#center)
Immagine che mostra le righe copiate
Copia una singola colonna in un file Excel usando C++
Di seguito sono riportati i passaggi per copiare una singola colonna in un file Excel utilizzando C++.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera il foglio di lavoro in cui desideri copiare la colonna.
- Copia la colonna usando CopyIColumn(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex).
- Salvare il file Excel utilizzando IWorkbook->Salva(intrusiveptrAspose::Cells::Systems::String nomefile).
Il codice di esempio seguente mostra come copiare una singola colonna in un file di Excel usando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Ottieni il primo foglio di lavoro
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copia colonna
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);
// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
![Immagine che mostra la colonna copiata](images/CopyColumn.jpg#center)
Immagine che mostra la colonna copiata
Copia di più colonne in un file Excel utilizzando C++
Per copiare più colonne, utilizzeremo il metodo CopyIColumns che accetta un parametro aggiuntivo che indica il numero totale di colonne da copiare. Per copiare più colonne, segui i passaggi indicati di seguito.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera il foglio di lavoro in cui desideri copiare le colonne.
- Copia le colonne usando CopyIColumns(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex, Aspose::Cells::Systems::Int32 columnNumber).
- Salvare il file Excel utilizzando IWorkbook->Salva(intrusiveptrAspose::Cells::Systems::String nomefile).
Il codice di esempio seguente mostra come copiare più colonne in un file di Excel usando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Ottieni il primo foglio di lavoro
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copia colonne
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);
// Salva il file Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
![Immagine che mostra le colonne copiate](images/CopyColumns.jpg#center)
Immagine che mostra le colonne copiate
Ottieni una licenza gratuita
Per provare l’API senza limitazioni di valutazione, puoi richiedere una licenza temporanea gratuita.
Conclusione
In questo articolo hai imparato come copiare righe e colonne in un file Excel usando C++. Gli esempi di codice condiviso mostrano come copiare righe e colonne singole e multiple in un file Excel. Abbiamo utilizzato l’API Aspose.Cells per C++ per ottenere questo risultato. È un’API robusta che fornisce molte funzionalità aggiuntive per lavorare con i file Excel. Puoi esplorare l’API in dettaglio visitando la documentazione ufficiale. In caso di domande, non esitare a contattarci nel nostro forum di supporto gratuito.