Copier des lignes et des colonnes avec Node.js via C++
Introduction
Parfois, vous devez copier des lignes et des colonnes dans une feuille de calcul sans copier toute la feuille de calcul. Avec Aspose.Cells, il est possible de copier des lignes et des colonnes à l’intérieur ou entre les 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, la mise en forme, les cellules masquées, les images et autres objets graphiques sont également copiés.
Comment copier des lignes et des colonnes avec Microsoft Excel
- Sélectionnez la ligne ou la colonne que vous souhaitez copier.
- Pour copier des lignes ou des colonnes, cliquez sur Copier dans la barre d’outils Standard, ou appuyez sur CTRL+C.
- Sélectionnez une ligne ou une colonne en dessous ou à droite de l’endroit où vous souhaitez copier votre sélection.
- Lorsque vous copiez des lignes ou des colonnes, cliquez sur Cellules copiées dans le menu Insérer.
Comment coller des lignes et des colonnes en utilisant les options de collage avec Microsoft Excel
- Sélectionnez les cellules contenant les données ou autres attributs que vous souhaitez copier.
- Sur l’onglet Accueil, cliquez sur Copier.
- Cliquez sur la première cellule dans la zone où vous souhaitez coller ce que vous avez copié.
- Sur l’onglet Accueil, cliquez sur la flèche à côté de Coller, puis sélectionnez Collage spécial.
- Sélectionnez les options que vous souhaitez.
Comment copier des lignes et des colonnes en utilisant Aspose.Cells for Node.js via C++
Comment copier des lignes uniques
Aspose.Cells fournit la méthode Cells.copyRow(Cells, number, number) de la classe Cells. Cette méthode copie tous types de données, y compris formules, valeurs, commentaires, formats de cellules, cellules cachées, images et autres objets de dessin de la ligne source vers la ligne de destination.
La méthode Cells.copyRow(Cells, number, number) prend les paramètres suivants :
- l’objet Cells source,
- l’indice de ligne source, et
- l’indice de ligne de destination.
Utilisez cette méthode pour copier une ligne au sein d’une feuille ou vers une autre feuille. La méthode Cells.copyRow(Cells, number, number) fonctionne de manière similaire à Microsoft Excel. 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 fichier Excel Microsoft de modèle et copie la deuxième ligne (avec ses données, son formatage, ses commentaires, ses images, etc.) et la colle à la 12e ligne de la même feuille.
Vous pouvez sauter l’étape consistant à obtenir la hauteur de la ligne source en utilisant la méthode Cells.getRowHeight(number, boolean, CellsUnitType) puis définir la hauteur de la ligne de destination avec la méthode Cells.setRowHeight(number, number), car la méthode Cells.copyRow(Cells, number, number) s’occupe automatiquement de la hauteur de la ligne.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Open the existing excel file.
const excelWorkbook1 = new AsposeCells.Workbook(path.join(dataDir, "book1.xls"));
// Get the first worksheet in the workbook.
const wsTemplate = excelWorkbook1.getWorksheets().get(0);
// Copy the second row with data, formattings, images and drawing objects
// To the 16th row in the worksheet.
wsTemplate.getCells().copyRow(wsTemplate.getCells(), 1, 15);
// Save the excel file.
excelWorkbook1.save(path.join(dataDir, "output.xls"));
Lors de la copie de lignes, il est important de noter les images, les graphiques ou autres objets de dessin associés, car c’est la même chose avec Microsoft Excel :
- Si l’indice de la ligne source est 5, l’image, le graphique, etc., est copié s’il est contenu dans les trois lignes (l’indice de début de la ligne est 4 et l’indice de fin de la ligne est 6).
- Les images existantes, les graphiques, etc. dans la ligne de destination ne seront pas supprimés.
Comment copier plusieurs lignes
Vous pouvez également copier plusieurs lignes vers une nouvelle destination en utilisant la méthode Cells.copyRows(Cells, number, number, number) qui prend un paramètre supplémentaire de type entier pour préciser le nombre de lignes sources à copier.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "aspose-sample.xlsx");
// Create an instance of Workbook class by loading the existing spreadsheet
const workbook = new AsposeCells.Workbook(filePath);
// Get the cells collection of first worksheet
const cells = workbook.getWorksheets().get(0).getCells();
// Copy the first 3 rows to 7th row
cells.copyRows(cells, 0, 6, 3);
// Save the result on disc
workbook.save(path.join(dataDir, "output_out.xlsx"));
Comment copier des colonnes
Aspose.Cells fournit la méthode Cells.copyColumn(Cells, number, number) de la classe Cells, cette méthode copie tous types de données, y compris les formules - avec références mises à jour - et les valeurs, commentaires, formats de cellules, cellules cachées, images et autres objets de dessin de la colonne source vers la colonne de destination.
La méthode Cells.copyColumn(Cells, number, number) prend les paramètres suivants :
- l’objet Cells source,
- indice de la colonne source, et
- indice de la colonne de destination.
Utilisez la méthode Cells.copyColumn(Cells, number, number) pour copier une colonne au sein d’une feuille ou vers 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.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "book1.xls");
// Create another Workbook.
const excelWorkbook1 = new AsposeCells.Workbook(filePath);
// Get the first worksheet in the book.
const ws1 = excelWorkbook1.getWorksheets().get(0);
// Copy the first column from the first worksheet of the first workbook into
// The first worksheet of the second workbook.
ws1.getCells().copyColumn(ws1.getCells(), ws1.getCells().getColumns().get(0).getIndex(), ws1.getCells().getColumns().get(2).getIndex());
// Autofit the column.
ws1.autoFitColumn(2);
// Save the excel file.
excelWorkbook1.save(path.join(dataDir, "output.xls"));
Comment copier plusieurs colonnes
Semblable à la méthode Cells.copyRows(Cells, number, number, number), les API Aspose.Cells proposent également la méthode Cells.copyColumns(Cells, number, number, number, PasteOptions) afin de copier plusieurs colonnes source vers un nouvel emplacement.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Create an instance of Workbook class by loading the existing spreadsheet
const workbook = new AsposeCells.Workbook(path.join(dataDir, "aspose-sample.xlsx"));
// Get the first worksheet's cells collection
const worksheet = workbook.getWorksheets().get(0);
const cells = worksheet.getCells();
// Copy the first 3 columns to the 7th column
cells.copyColumns(cells, 0, 6, 3);
// Save the result on disc
workbook.save(path.join(dataDir, "output_out.xlsx"));
Comment coller des lignes et des colonnes avec des options de collage
Aspose.Cells fournit maintenant PasteOptions tout en utilisant les fonctions Cells.copyRows(Cells, number, number, number) et Cells.copyColumns(Cells, number, number, number, PasteOptions). Il permet de définir une option de collage appropriée similaire à Excel.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const sourceDir = path.join(__dirname, "data");
const outputDir = path.join(__dirname, "output");
// Load sample excel file
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "sampleChangeChartDataSource.xlsx"));
// Access the first sheet which contains chart
const source = workbook.getWorksheets().get(0);
// Add another sheet named DestSheet
const destination = workbook.getWorksheets().add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
const options = new AsposeCells.CopyOptions();
options.setReferToDestinationSheet(true);
// Set PasteOptions
const pasteOptions = new AsposeCells.PasteOptions();
pasteOptions.setPasteType(AsposeCells.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
workbook.save(path.join(outputDir, "outputChangeChartDataSource.xlsx"), AsposeCells.SaveFormat.Xlsx);