Att kopiera rader och kolumner är en vanlig uppgift som utförs när man arbetar med Excel-filer. Det kan finnas situationer där du behöver kopiera rader eller kolumner i Excel-filer programmatiskt. För sådana fall kommer den här artikeln att lära dig hur du kopierar rader och kolumner i Excel-filer med C++.

C++ API för att kopiera rader och kolumner i Excel-filer

Aspose.Cells for C++ är ett inbyggt C++-bibliotek som låter dig skapa, läsa och ändra Excel-filer utan att Microsoft Excel behöver installeras. API:et ger också möjlighet att kopiera rader och kolumner i Excel-filer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Cells.Cpp

Kopiera en enda rad i en Excel-fil med C++

Följande är bilden av källfilen i Excel som vi kommer att använda i följande exempel.

Källarbetsblad

Följande är stegen för att kopiera en enstaka rad i en Excel-fil med C++.

Följande exempelkod visar hur man kopierar en rad i en Excel-fil med C++.

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

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

// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Skaffa det första arbetsbladet
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopiera rad
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);

// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
Bild som visar den kopierade raden

Bild som visar den kopierade raden

Kopiera flera rader i en Excel-fil med C++

För att kopiera flera rader kommer vi att använda metoden CopyIRows som accepterar en extra parameter som anger det totala antalet rader som ska kopieras. För att kopiera flera rader, följ stegen nedan.

Följande exempelkod visar hur du kopierar flera rader i en Excel-fil med C++.

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

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

// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Skaffa det första arbetsbladet
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopiera rader
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);

// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
Bild som visar de kopierade raderna

Bild som visar de kopierade raderna

Kopiera en enstaka kolumn i en Excel-fil med C++

Följande är stegen för att kopiera en enstaka kolumn i en Excel-fil med C++.

Följande exempelkod visar hur man kopierar en enstaka kolumn i en Excel-fil med C++.

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

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

// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Skaffa det första arbetsbladet
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopiera kolumn
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);

// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
Bild som visar den kopierade kolumnen

Bild som visar den kopierade kolumnen

Kopiera flera kolumner i en Excel-fil med C++

För att kopiera flera kolumner kommer vi att använda metoden CopyIColumns som accepterar ytterligare en parameter som anger det totala antalet kolumner som ska kopieras. För att kopiera flera kolumner, följ stegen nedan.

Följande exempelkod visar hur du kopierar flera kolumner i en Excel-fil med C++.

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

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

// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Skaffa det första arbetsbladet
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Kopiera kolumner
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);

// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
Bild som visar de kopierade kolumnerna

Bild som visar de kopierade kolumnerna

Skaffa en gratis licens

För att prova API utan utvärderingsbegränsningar kan du begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du kopierar rader och kolumner i en Excel-fil med C++. De delade kodexemplen visar hur man kopierar enstaka och flera rader och kolumner i en Excel-fil. Vi använde Aspose.Cells for C++ API för att uppnå detta. Det är ett robust API som ger många ytterligare funktioner för att arbeta med Excel-filer. Du kan utforska API:et i detalj 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