Excel är ett populärt format för att dela information. Du kan hamna i situationer där du har data i en Excel(XLS eller XLSX)-fil som du behöver importera till en databas. För detta måste du konvertera Excel-filen till CSV-format. Å andra sidan kan du ha data i CSV-format exporterad från en databas som du behöver manipulera ytterligare i en Excel-fil. I sådana fall skulle du behöva konvertera CSV-filen till Excel-format. I den här artikeln kommer du att lära dig hur du utför båda dessa konverteringar programmatiskt med C++.
- C++ API för att konvertera Excel-filer till CSV och CSV-filer till Excel-format
- Konvertera Excel-filer till CSV-format med C++
- Konvertera Excel-kalkylblad till CSV-filer
- Konvertera CSV-filer till Excel-format med C++
- Skaffa en gratis licens
C++ API för att konvertera Excel-filer till CSV och CSV-filer till Excel-format
Aspose.Cells for C++ är ett inbyggt C++-bibliotek som låter dig skapa, läsa och ändra Excel-filer. Dessutom stöder API:et konvertering av Excel-filer till CSV-format och vice versa. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.
PM> Install-Package Aspose.Cells.Cpp
Konvertera Excel-filer till CSV-format med C++
Att konvertera Excel-filer till CSV-format är enkelt med Aspose.Cells för C++ API. Följande är stegen för att konvertera Excel-filer till CSV-format med C++.
- Ladda Excel-filen med klassen IWorkbook.
- Spara filen som CSV med hjälp av IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String filnamn, Aspose::Cells::SaveFormat saveFormat) metod.
Följande är exempelkoden för att konvertera Excel-filer till CSV-format.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Spara utdata CSV-fil
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);
Konvertera Excel-kalkylblad till CSV-filer
Det föregående exemplet konverterar endast det första kalkylbladet om Excel-filen innehåller flera kalkylblad. Om du vill konvertera flera kalkylblad till CSV-format kan du följa följande steg.
- Ladda Excel-filen med klassen IWorkbook.
- Hämta kalkylbladen med metoden IWorkbook->GetIWorksheets().
- Gå igenom de hämtade arbetsbladen.
- Inom slingan kan du ange din anpassade logik för att konvertera specifika kalkylblad till CSV-filer. I den här demonstrationen konverteras alla kalkylblad till CSV-filer.
- Hämta kalkylbladet som ska konverteras med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Skapa en instans av klassen IWorkbook för att representera en ny CSV-fil.
- Kopiera det tidigare hämtade kalkylbladet till den nya arbetsboksinstansen med hjälp av IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) metod.
- Spara den nya arbetsboken som CSV med hjälp av IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String filnamn, Aspose::Cells::SaveFormat saveFormat) metod.
Följande är exempelkoden för att konvertera Excel-kalkylblad till CSV-filer med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Hämta arbetsbokens arbetsblad.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Skapa strängbyggarobjekt för strängsammansättningar.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();
for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
// Hämta kalkylbladet att kopiera
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);
// Skapa en instans av IWorkbook-klassen för att representera den nya arbetsboken
intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();
// Kopiera det tidigare hämtade kalkylbladet till den nya arbetsboken
newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Rensa strängbyggare och skapa utdatasökväg med strängsammansättningar.
stringBuilder->Clear();
stringBuilder->Append(outDir);
stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
stringBuilder->Append(sheet);
stringBuilder->Append((StringPtr)new String("_out.csv"));
// Spara utdata CSV-fil
newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}
Konvertera CSV-filer till Excel-format med C++
Följande är stegen för att konvertera CSV-filer till Excel-format med C++.
- Skapa en instans av klassen ILoadOptions.
- Skapa ett objekt av klassen IWorkbook med hjälp av instansen ILoadOptions som skapades tidigare.
- Spara filen i Excel-format med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn, Aspose::Cells::SaveFormat saveFormat) metod.
Följande är exempelkoden för att konvertera CSV-filer till Excel-format med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Skapa CSV LoadOptions-objekt
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);
// Spara utdata CSV-fil
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);
Skaffa en gratis licens
Du kan prova API utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du konverterar Excel-filer till CSV-format och CSV-filer till Excel-format (XLS/XLSX) med C++. Aspose.Cells för C++ är ett stort API som ger många ytterligare funktioner för att arbeta med Excel-filer. Du kan utforska API:et i detalj genom att använda den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.