Excel je oblíbený formát pro sdílení informací. Můžete se ocitnout v situacích, kdy máte v souboru Excel (XLS nebo XLSX) data, která potřebujete importovat do databáze. K tomu budete muset převést soubor Excel do formátu CSV. Na druhou stranu můžete mít data ve formátu CSV exportovaná z databáze, se kterými budete muset dále manipulovat v souboru Excel. V takových případech byste museli převést soubor CSV do formátu Excel. V tomto článku se dozvíte, jak provést oba tyto převody programově pomocí C++.
- C++ API pro převod souborů Excel do CSV a souborů CSV do formátu Excel
- Převod souborů Excel do formátu CSV pomocí C++
- Převeďte pracovní listy aplikace Excel do souborů CSV
- Převod souborů CSV do formátu Excel pomocí C++
- Získejte bezplatnou licenci
C++ API pro převod souborů Excel do CSV a souborů CSV do formátu Excel
Aspose.Cells for C++ je nativní knihovna C++, která umožňuje vytvářet, číst a upravovat soubory aplikace Excel. Kromě toho API podporuje převod souborů Excel do formátu CSV a naopak. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.
PM> Install-Package Aspose.Cells.Cpp
Převod souborů Excel do formátu CSV pomocí C++
Převod souborů aplikace Excel do formátu CSV je s Aspose.Cells for C++ API hračkou. Následují kroky pro převod souborů Excel do formátu CSV pomocí C++.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Uložte soubor jako CSV pomocí IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) metoda.
Následuje ukázkový kód pro převod souborů aplikace Excel do formátu CSV.
// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\");
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Uložit výstupní soubor CSV
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);
Převeďte pracovní listy aplikace Excel do souborů CSV
Předchozí příklad převede pouze první list, pokud soubor aplikace Excel obsahuje více listů. V případě, že chcete převést více listů do formátu CSV, můžete postupovat podle následujících kroků.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Získejte listy pomocí metody IWorkbook->GetIWorksheets().
- Projděte načtené pracovní listy.
- V rámci smyčky můžete určit svou vlastní logiku pro převod konkrétních listů na soubory CSV. V této ukázce jsou všechny listy převedeny na soubory CSV.
- Získejte list, který chcete převést, pomocí metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Vytvořte instanci třídy IWorkbook, která bude reprezentovat nový soubor CSV.
- Zkopírujte dříve načtený list do nové instance sešitu pomocí IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) metoda.
- Uložte nový sešit jako CSV pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) metoda.
Následuje ukázkový kód pro převod listů aplikace Excel na soubory CSV pomocí jazyka C++.
// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\");
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Získejte listy sešitu.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Vytvořte objekt pro vytváření řetězců pro zřetězení řetězců.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();
for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
// Získejte list ke kopírování
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);
// Vytvořte instanci třídy IWorkbook, která bude reprezentovat nový sešit
intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();
// Zkopírujte dříve načtený list do nového sešitu
newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Vymažte tvůrce řetězců a vytvořte výstupní cestu se zřetězením řetězců.
stringBuilder->Clear();
stringBuilder->Append(outDir);
stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
stringBuilder->Append(sheet);
stringBuilder->Append((StringPtr)new String("_out.csv"));
// Uložit výstupní soubor CSV
newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}
Převod souborů CSV do formátu Excel pomocí C++
Níže jsou uvedeny kroky pro převod souborů CSV do formátu Excel pomocí C++.
- Vytvořte instanci třídy ILoadOptions.
- Vytvořte objekt třídy IWorkbook pomocí instance ILoadOptions vytvořené dříve.
- Uložte soubor ve formátu Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) metoda.
Následuje ukázkový kód pro převod souborů CSV do formátu Excel pomocí C++.
// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\");
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Vytvořte objekt CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);
// Uložit výstupní soubor CSV
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);
Získejte bezplatnou licenci
Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.
Závěr
V tomto článku jste se naučili převádět soubory Excel do formátu CSV a soubory CSV do formátu Excel (XLS/XLSX) pomocí C++. Aspose.Cells for C++ je rozsáhlé API, které poskytuje mnoho dalších funkcí pro práci se soubory aplikace Excel. Rozhraní API můžete podrobně prozkoumat pomocí oficiální dokumentace. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.