Excel è un formato popolare per la condivisione di informazioni. Potresti trovarti in situazioni in cui hai dati in un file Excel(XLS o XLSX) che devi importare in un database. Per questo, dovresti convertire il file Excel nel formato CSV. D’altra parte, potresti avere dati in formato CSV esportati da un database che devi manipolare ulteriormente in un file Excel. In questi casi, dovrai convertire il file CSV in formato Excel. In questo articolo imparerai come eseguire entrambe queste conversioni a livello di codice usando C++.
- API C++ per convertire file Excel in CSV e file CSV in formato Excel
- Conversione di file Excel in formato CSV utilizzando C++
- Converti fogli di lavoro Excel in file CSV
- Conversione di file CSV in formato Excel utilizzando C++
- Ottieni una licenza gratuita
API C++ per convertire file Excel in CSV e file CSV in formato Excel
Aspose.Cells for C++ è una libreria C++ nativa che consente di creare, leggere e modificare file Excel. Inoltre, l’API supporta la conversione di file Excel in formato CSV e viceversa. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.
PM> Install-Package Aspose.Cells.Cpp
Conversione di file Excel in formato CSV utilizzando C++
La conversione di file Excel in formato CSV è un gioco da ragazzi con Aspose.Cells per l’API C++. Di seguito sono riportati i passaggi per convertire i file Excel in formato CSV utilizzando C++.
- Carica il file Excel utilizzando la classe IWorkbook.
- Salva il file come CSV usando IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat).
Di seguito è riportato il codice di esempio per convertire i file Excel in formato CSV.
// 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("Sample1.xlsx")));
// Salva il file CSV di output
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);
Converti fogli di lavoro Excel in file CSV
L’esempio precedente converte solo il primo foglio di lavoro se il file Excel contiene più fogli di lavoro. Nel caso in cui desideri convertire più fogli di lavoro in formato CSV, puoi seguire i seguenti passaggi.
- Carica il file Excel utilizzando la classe IWorkbook.
- Recupera i fogli di lavoro utilizzando il metodo IWorkbook->GetIWorksheets().
- Scorri i fogli di lavoro recuperati.
- All’interno del ciclo, puoi specificare la tua logica personalizzata per convertire fogli di lavoro specifici in file CSV. In questa dimostrazione, tutti i fogli di lavoro vengono convertiti in file CSV.
- Recupera il foglio di lavoro da convertire utilizzando il metodo IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Crea un’istanza della classe IWorkbook per rappresentare un nuovo file CSV.
- Copia il foglio di lavoro recuperato in precedenza nella nuova istanza della cartella di lavoro utilizzando IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet).
- Salva la nuova cartella di lavoro come CSV usando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat).
Di seguito è riportato il codice di esempio per convertire i fogli di lavoro di Excel in file CSV 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
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Recupera i fogli di lavoro della cartella di lavoro.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Crea un oggetto generatore di stringhe per le concatenazioni di stringhe.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();
for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
// Recupera il foglio di lavoro da copiare
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);
// Crea un'istanza della classe IWorkbook per rappresentare la nuova cartella di lavoro
intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();
// Copia il foglio di lavoro recuperato in precedenza nella nuova cartella di lavoro
newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Cancella il generatore di stringhe e crea un percorso di output con concatenazioni di stringhe.
stringBuilder->Clear();
stringBuilder->Append(outDir);
stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
stringBuilder->Append(sheet);
stringBuilder->Append((StringPtr)new String("_out.csv"));
// Salva il file CSV di output
newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}
Conversione di file CSV in formato Excel utilizzando C++
Di seguito sono riportati i passaggi per convertire i file CSV in formato Excel utilizzando C++.
- Crea un’istanza della classe ILoadOptions.
- Crea un oggetto della classe IWorkbook usando l’istanza ILoadOptions creata in precedenza.
- Salvare il file in formato Excel utilizzando IWorkbook->Salva (intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat).
Di seguito è riportato il codice di esempio per convertire i file CSV in formato Excel utilizzando C++.
// Percorso della directory di origine.
StringPtr srcDir = new String("SourceDirectory\\");
// Percorso della directory di output.
StringPtr outDir = new String("OutputDirectory\\");
// Crea un oggetto LoadOptions CSV
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);
// Carica il file Excel di input
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);
// Salva il file CSV di output
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_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 convertire i file Excel in formato CSV e i file CSV in formato Excel (XLS/XLSX) usando C++. Aspose.Cells per C++ è una vasta API che fornisce molte funzionalità aggiuntive per lavorare con i file Excel. Puoi esplorare l’API in dettaglio utilizzando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul nostro forum di supporto gratuito.