Soubory Excel se používají pro správu složitých dat, jako jsou rozpočty oddělení nebo roční zprávy o prodeji. Mohou nastat situace, kdy máte připravenou šablonu, kterou chcete použít k vytvoření sestavy. Za tímto účelem můžete vytvořit kopii šablony listu. Možná budete také muset uspořádat listy, abyste demonstrovali tok dat. Pro takové případy si můžete upravit uspořádání pracovních listů podle svých požadavků. Ve světle toho se naučíte, jak kopírovat a přesouvat listy programově pomocí C++.
- C++ API pro kopírování nebo přesouvání excelových listů
- Kopírování listů v sešitu aplikace Excel pomocí C++
- Zkopírujte listy z jednoho sešitu do druhého
- Přesunout list na jinou pozici pomocí C++
- Získejte bezplatnou licenci
C++ API pro kopírování nebo přesouvání excelových listů
Aspose.Cells for C++ je nativní knihovna C++, která umožňuje vytvářet, číst a aktualizovat soubory aplikace Excel bez nutnosti instalace aplikace Microsoft Excel. API také podporuje kopírování a přesouvání excelových listů. 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
Kopírování listů v sešitu aplikace Excel pomocí C++
Níže jsou uvedeny kroky ke kopírování listů v sešitu aplikace Excel.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Načtěte kolekci listů pomocí metody IWorkbook->GetIWorksheets().
- Přidejte kopii požadovaného listu pomocí IWorksheetCollection->AddCopy (intrusiveptrAspose::Cells::Systems::String listName) metoda.
- Nakonec uložte soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následuje ukázkový kód pro kopírování listu v sešitu aplikace 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\\");
// Načtěte soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Získejte pracovní listy
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Zkopírujte data do nového listu z existujícího listu v sešitu.
sheets->AddCopy(new String("Sheet1"));
// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
Zkopírujte listy z jednoho sešitu do druhého
Aspose.Cells for C++ také umožňuje kopírovat listy mezi dvěma soubory aplikace Excel. Následují kroky ke zkopírování listu z jednoho souboru aplikace Excel do druhého.
- Nejprve načtěte zdrojové a cílové soubory Excel pomocí třídy IWorkbook.
- Načtěte kolekci listů zdrojového sešitu pomocí metody IWorkbook->GetIWorksheets().
- Získejte list, který chcete zkopírovat, pomocí metody IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Zkopírujte list do cílového sešitu pomocí IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) metoda.
- Nakonec uložte cílový soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následuje ukázkový kód pro zkopírování listu z jednoho sešitu aplikace Excel do jiného 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 zdrojový soubor Excel
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Načtěte cílový soubor Excel
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));
// Načíst listy zdrojového sešitu
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();
// Načtěte list, který chcete zkopírovat
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);
// Zkopírujte dříve načtený list do nového sešitu
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Uložte soubor Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));
Přesunout list na jinou pozici pomocí C++
Následují kroky ke změně pozice listu v sešitu aplikace Excel.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Načtěte kolekci listů pomocí metody IWorkbook->GetIWorksheets().
- Získejte list, který chcete přesunout, pomocí metody IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Přesuňte list na požadované místo pomocí metody IWorksheet->MoveTo (Aspose::Cells::Systems::Int32 index).
- Nakonec uložte soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následuje ukázkový kód pro přesunutí listu na jinou pozici ve stejném sešitu pomocí 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 pracovní listy
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Otevřete první list
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);
// Přesuňte první list na druhé místo v sešitu.
sheet->MoveTo(1);
// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.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 kopírovat listy v rámci stejného sešitu aplikace Excel nebo mezi různými sešity. Dále jste viděli, jak změnit pozici listu v souboru aplikace Excel. Aspose.Cells for C++ poskytuje mnoho dalších funkcí pro práci se soubory aplikace Excel, které můžete prozkoumat na oficiální dokumentaci. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.