Kopiera eller flytta Excel-kalkylblad

Excel-filer används för att hantera komplexa data som avdelningsbudgetar eller årliga försäljningsrapporter. Det kan finnas situationer där du har en färdig mall som du vill använda för att skapa en rapport. För detta kan du skapa en kopia av mallens arbetsblad. Du kan också behöva organisera arbetsbladen för att visa dataflödet. I sådana fall kan du ordna om arbetsbladen enligt dina krav. I ljuset av detta kommer du att lära dig hur du kopierar och flyttar kalkylblad programmatiskt med C++.

C++ API för att kopiera eller flytta Excel-kalkylblad

Aspose.Cells for C++ är ett inbyggt C++-bibliotek som låter dig skapa, läsa och uppdatera Excel-filer utan att Microsoft Excel behöver installeras. API:et stöder även kopiering och flyttning av Excel-kalkylblad. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Cells.Cpp

Kopiera kalkylblad i en Excel-arbetsbok med C++

Följande är stegen för att kopiera kalkylblad i en Excel-arbetsbok.

Följande är exempelkoden för att kopiera ett kalkylblad i en Excel-arbetsbok 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 arbetsblad
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Kopiera data till ett nytt ark från ett befintligt ark i arbetsboken.
sheets->AddCopy(new String("Sheet1"));

// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Kopiera arbetsblad från en arbetsbok till en annan

Aspose.Cells för C++ låter dig också kopiera kalkylblad mellan två Excel-filer. Följande är stegen för att kopiera ett kalkylblad från en Excel-fil till en annan.

Följande är exempelkoden för att kopiera ett kalkylblad från en Excel-arbetsbok till en annan med C++.

// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");

// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");

// Ladda källfilen för Excel
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Ladda mål Excel-filen
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// Hämta källarbetsbokens kalkylblad
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Hämta kalkylbladet som du vill kopiera
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Kopiera det tidigare hämtade kalkylbladet till den nya arbetsboken
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Spara Excel-filen
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Flytta kalkylbladet till en annan position med C++

Följande är stegen för att ändra placeringen av kalkylbladet i en Excel-arbetsbok.

Följande är exempelkoden för att flytta kalkylbladet till en annan position i samma arbetsbok 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 arbetsblad
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Få tillgång till det första arket
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Flytta det första arket till den andra positionen i arbetsboken.
sheet->MoveTo(1);

// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("Sample1_out.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 kopierar kalkylblad inom samma Excel-arbetsbok eller mellan olika arbetsböcker. Dessutom har du sett hur du ändrar placeringen av kalkylbladet i en Excel-fil. Aspose.Cells för C++ tillhandahåller många fler funktioner för att arbeta med Excel-filer som du kan utforska genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även