Kopiera rader och kolumner

Introduktion

Ibland behöver du kopiera rader och kolumner i en arbetsbok utan att kopiera hela arbetsboken. Med Aspose.Cells är det möjligt att kopiera rader och kolumner inom eller mellan arbetsböcker.

När en rad (eller kolumn) kopieras, kopieras också den data som finns i den, inklusive formler - med uppdaterade referenser - och värden, kommentarer, formatering, dolda celler, bilder och andra ritobjekt.

Kopiera rader och kolumner med Microsoft Excel

  1. Markera raden eller kolumnen som du vill kopiera.
  2. För att kopiera rader eller kolumner, klicka på KopieraStandard verktygsfältet, eller tryck på CTRL+C.
  3. Välj en rad eller en kolumn nedanför eller till höger om där du vill kopiera ditt val.
  4. När du kopierar rader eller kolumner, klicka på Kopierade celler på menyn Infoga.

Kopiera enstaka rad

Aspose.Cells tillhandahåller copyRow metoden från Cells klassen. Denna metod kopierar alla typer av data inklusive formler, värden, kommentarer, cellformat, dolda celler, bilder och andra ritobjekt från källraden till destinationsraden.

Metoden copyRow tar följande parametrar:

  • käll Cells objekt,
  • källradens index, och
  • destinationsradens index.

Använd denna metod för att kopiera en rad inom ett blad, eller till ett annat blad. copyRow metoden fungerar på ett liknande sätt som Microsoft Excel. Så, till exempel, behöver du inte sätta höjden på destinationsraden explcit, det värdet kopieras också.

Följande exempel visar hur man kopierar en rad i en arbetsbok. Det använder en mall Microsoft Excel-fil och kopierar den andra raden (komplett med data, formatering, kommentarer, bilder och så vidare) och klistrar in den i den 12:e raden i samma arbetsbok.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CopyingRows.class) + "rows_cloumns/";
// Create a new Workbook.
Workbook excelWorkbook = new Workbook(dataDir + "book1.xls");
// Get the first worksheet in the workbook.
Worksheet wsTemplate = excelWorkbook.getWorksheets().get(0);
// Copy the second row with data, formating, images and drawing objects to the 12th row in the worksheet.
wsTemplate.getCells().copyRow(wsTemplate.getCells(), 2, 10);
// Save the excel file.
excelWorkbook.save(dataDir + "CopyingRows_out.xls");
// Print message
System.out.println("Row and Column copied successfully.");

Följande utdata genereras när koden nedan körs.

Raderna kopieras med högsta möjliga precision och noggrannhet

todo:image_alt_text

Kopiera flera rader

Du kan också kopiera flera rader till en ny destination samtidigt som du använder Cells.copyRows-metoden som tar en ytterligare parameter av typ integer för att ange antalet källrader som ska kopieras.

Här är en ögonblicksbild av den inmatade kalkylarket som innehåller 3 rader med data medan kodsnutten nedan kopierar alla 3 rader till en ny plats som startar från den 7: e raden.

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyingMultipleRows.class);
// Create an instance of Workbook class by loading the existing spreadsheet
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx");
// Get the cells collection of worksheet by name Rows
Cells cells = workbook.getWorksheets().get("Rows").getCells();
// Copy the first 3 rows to 7th row
cells.copyRows(cells, 0, 6, 3);
// Save the result on disc
workbook.save(dataDir + "output.xlsx");

Här är den resulterande kalkylarksvisningen efter att ha kört kodsnutten ovan.

todo:image_alt_text

Kopiera enstaka kolumn

Aspose.Cells tillhandahåller copyColumn metoden i Cells klassen, denna metod kopierar alla typer av data, inklusive formler - med uppdaterade referenser - och värden, kommentarer, cellformat, dolda celler, bilder och andra ritobjekt från källkolumnen till destinationskolumnen.

copyColumn metoden tar följande parametrar:

  • käll Cells objekt,
  • källkolumnens index och
  • destinationskolumnens index.

Använd copyColumn metoden för att kopiera en kolumn i en kalkylblad eller till ett annat kalkylblad.

Detta exempel kopierar en kolumn från ett blad och klistrar in den i ett blad i en annan arbetsbok.

En kolumn kopieras från en arbetsbok till en annan

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CopyingColumns.class) + "rows_cloumns/";
// Create a new Workbook.
Workbook excelWorkbook = new Workbook(dataDir + "book1.xls");
// Get the first worksheet in the workbook.
Worksheet wsTemplate = excelWorkbook.getWorksheets().get(0);
// Copy the first column from the first worksheet of the first workbook into the first worksheet of the second workbook.
wsTemplate.getCells().copyColumn(wsTemplate.getCells(), 1, 4);
// Save the excel file.
excelWorkbook.save(dataDir + "CopyingColumns_out.xls");
// Print message
System.out.println("Row and Column copied successfully.");

Kopiera flera kolumner

På liknande sätt som Cells.copyRows-metoden tillhandahåller också Aspose.Cells API:er metoden Cells.copyColumns för att kopiera flera källkolumner till en ny plats.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyingMultipleColumns.class);
// Create an instance of Workbook class by loading the existing spreadsheet
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx");
// Get the cells collection of worksheet by name Columns
Cells cells = workbook.getWorksheets().get("Columns").getCells();
// Copy the first 3 columns 7th column
cells.copyColumns(cells, 0, 6, 3);
// Save the result on disc
workbook.save(dataDir + "output.xlsx");

Så här ser käll- och resulterande kalkylarken ut i Excel.

todo:image_alt_text

todo:image_alt_text

Klistra in rader/kolumner med klistralternativ

Aspose.Cells tillhandahåller nu PasteOptions när du använder funktioner CopyRows och CopyColumns. Det tillåter att ställa in lämpliga klistralternativ liknande Excel.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Load some excel file
Workbook wb = new Workbook("book1.xlsx");
// Access the first sheet which contains chart
Worksheet source = wb.getWorksheets().get(0);
// Add another sheet named DestSheet
Worksheet destination = wb.getWorksheets().add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
CopyOptions options = new CopyOptions();
options.setReferToDestinationSheet(true);
// Set PasteOptions
PasteOptions pasteOptions = new PasteOptions();
pasteOptions.setPasteType(PasteType.VALUES);
pasteOptions.setOnlyVisibleCells(true);
// Copy all the rows of source worksheet to destination worksheet which includes chart as well
// The chart data source will now refer to DestSheet
destination.getCells().copyRows(source.getCells(), 0, 0, source.getCells().getMaxDisplayRange().getRowCount(), options, pasteOptions);
// Save workbook in xlsx format
wb.save("destination.xlsx", SaveFormat.XLSX);