Kopírování řádků a sloupců je běžným úkolem, který se provádí při práci se soubory aplikace Excel. Mohou nastat situace, kdy potřebujete zkopírovat řádky nebo sloupce v souborech aplikace Excel programově. Pro takové případy vás tento článek naučí, jak kopírovat řádky a sloupce v souborech aplikace Excel pomocí C++.

C++ API pro kopírování řádků a sloupců v souborech aplikace Excel

Aspose.Cells for C++ je nativní knihovna C++, která umožňuje vytvářet, číst a upravovat soubory aplikace Excel bez nutnosti instalace aplikace Microsoft Excel. Rozhraní API také poskytuje možnost kopírovat řádky a sloupce v souborech aplikace Excel. 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

Zkopírujte jeden řádek v souboru aplikace Excel pomocí C++

Následuje obrázek zdrojového souboru Excel, který použijeme v následujících příkladech.

Zdrojový list

Níže jsou uvedeny kroky ke zkopírování jednoho řádku v souboru aplikace Excel pomocí C++.

Následující ukázkový kód ukazuje, jak zkopírovat řádek v souboru aplikace Excel pomocí C++.

// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// 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")));

// Získejte první pracovní list
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopírovat řádek
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);

// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
Obrázek zobrazující zkopírovaný řádek

Obrázek zobrazující zkopírovaný řádek

Kopírování více řádků v souboru aplikace Excel pomocí C++

Abychom zkopírovali více řádků, použijeme metodu CopyIRows, která akceptuje další parametr udávající celkový počet řádků ke kopírování. Chcete-li zkopírovat více řádků, postupujte podle níže uvedených kroků.

Následující ukázkový kód ukazuje, jak zkopírovat více řádků v souboru aplikace Excel pomocí C++.

// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// Cesta k výstupnímu adresáři.
StringPtr outDir = new String("OutputDirectory\\");

// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Získejte první pracovní list
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopírovat řádky
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);

// Uložte soubor Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
Obrázek zobrazující zkopírované řádky

Obrázek zobrazující zkopírované řádky

Zkopírujte jeden sloupec do souboru aplikace Excel pomocí C++

Níže jsou uvedeny kroky ke zkopírování jednoho sloupce v souboru aplikace Excel pomocí C++.

Následující ukázkový kód ukazuje, jak zkopírovat jeden sloupec v souboru aplikace Excel pomocí C++.

// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// 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")));

// Získejte první pracovní list
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopírovat sloupec
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);

// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
Obrázek zobrazující zkopírovaný sloupec

Obrázek zobrazující zkopírovaný sloupec

Kopírování více sloupců v souboru aplikace Excel pomocí C++

Abychom zkopírovali více sloupců, použijeme metodu CopyIColumns, která akceptuje další parametr udávající celkový počet sloupců, které mají být zkopírovány. Chcete-li zkopírovat více sloupců, postupujte podle kroků uvedených níže.

Následující ukázkový kód ukazuje, jak zkopírovat více sloupců v souboru aplikace Excel pomocí C++.

// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// 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")));

// Získejte první pracovní list
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopírovat sloupce
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);

// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
Obrázek zobrazující zkopírované sloupce

Obrázek zobrazující zkopírované sloupce

Získejte bezplatnou licenci

Abyste mohli API vyzkoušet bez omezení hodnocení, můžete požádat o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili kopírovat řádky a sloupce v souboru aplikace Excel pomocí C++. Ukázky sdíleného kódu ukazují, jak kopírovat jeden a více řádků a sloupců v souboru aplikace Excel. K dosažení tohoto cíle jsme použili Aspose.Cells for C++ API. Jedná se o robustní API, které poskytuje mnoho dalších funkcí pro práci se soubory Excel. Rozhraní API můžete podrobně prozkoumat na oficiální dokumentaci. V případě jakýchkoliv dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také