Copier des lignes et des colonnes

Introduction

Parfois, vous devez copier des lignes et des colonnes dans une feuille de calcul sans copier la totalité de la feuille de calcul. Avec Aspose.Cells, il est possible de copier des lignes et des colonnes dans ou entre des classeurs.

Lorsqu’une ligne (ou une colonne) est copiée, les données qu’elle contient, y compris les formules - avec des références mises à jour - et les valeurs, les commentaires, le formatage, les cellules masquées, les images et d’autres objets de dessin sont également copiés.

Copier des lignes et des colonnes avec Microsoft Excel

  1. Sélectionnez la ligne ou la colonne que vous souhaitez copier.
  2. Pour copier des lignes ou des colonnes, cliquez surCopie sur leStandard barre d’outils ou appuyez surCTRL+C.
  3. Sélectionnez une ligne ou une colonne en dessous ou à droite de l’endroit où vous souhaitez copier votre sélection.
  4. Lorsque vous copiez des lignes ou des colonnes, cliquez surCopié Cells sur leInsérer menu.

Copie d’une seule ligne

Aspose.Cells fournit lecopierRow méthode de laCellsclasse. Cette méthode copie tous les types de données, y compris les formules, les valeurs, les commentaires, les formats de cellule, les cellules masquées, les images et autres objets de dessin de la ligne source vers la ligne de destination.

LecopierRow prend les paramètres suivants :

  • la sourceCellsobjet,
  • l’index de la ligne source, et
  • l’index de la ligne de destination.

Utilisez cette méthode pour copier une ligne dans une feuille ou dans une autre feuille. LecopierRow fonctionne de manière similaire à Microsoft Excel. Ainsi, par exemple, vous n’avez pas besoin de définir explicitement la hauteur de la ligne de destination, cette valeur est également copiée.

L’exemple suivant montre comment copier une ligne dans une feuille de calcul. Il utilise un modèle de fichier Excel Microsoft et copie la deuxième ligne (complète avec les données, le formatage, les commentaires, les images, etc.) et le colle à la 12e ligne de la même feuille de calcul.

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

La sortie suivante est générée lorsque le code ci-dessous est exécuté.

La ligne est copiée avec le plus haut degré de précision et d’exactitude

tâche : image_autre_texte

Copie de plusieurs lignes

Vous pouvez également copier plusieurs lignes vers une nouvelle destination tout en utilisant leCells.copyRows qui prend un paramètre supplémentaire de type entier pour spécifier le nombre de lignes source à copier.

Vous trouverez ci-dessous un instantané de la feuille de calcul d’entrée contenant 3 lignes de données, tandis que l’extrait de code fourni ci-dessous copie les 3 lignes vers un nouvel emplacement à partir de la 7e ligne.

tâche : image_autre_texte

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

Voici la vue de feuille de calcul résultante après l’exécution de l’extrait de code ci-dessus.

tâche : image_autre_texte

Copie d’une seule colonne

Aspose.Cells fournit lecopierColonne méthode de laCellsclasse, cette méthode copie tous les types de données, y compris les formules - avec des références mises à jour - et les valeurs, les commentaires, les formats de cellule, les cellules masquées, les images et autres objets de dessin de la colonne source vers la colonne de destination.

LecopierColonne prend les paramètres suivants :

  • la sourceCellsobjet,
  • index de colonne source, et
  • l’index de la colonne de destination.

Utilisez lecopierColonne pour copier une colonne dans une feuille ou dans une autre feuille.

Cet exemple copie une colonne d’une feuille de calcul et la colle dans une feuille de calcul d’un autre classeur.

Une colonne est copiée d’un classeur à un autre

tâche : image_autre_texte

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

Copie de plusieurs colonnes

Semblable àCells.copyRows, les API Aspose.Cells fournissent également laCells.copyColumns afin de copier plusieurs colonnes source vers un nouvel emplacement.

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

Voici à quoi ressemblent les feuilles de calcul source et résultante dans Excel.

tâche : image_autre_texte

tâche : image_autre_texte

Collage de lignes/colonnes avec les options de collage

Aspose.Cells fournit maintenantCollerOptions lors de l’utilisation des fonctionsCopier les lignes etCopierColonnes. Il permet de définir des options de collage appropriées similaires à 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);