Comment copier des cellules en utilisant IronXL

Comment copier des cellules en C#35 ; avec IronXL

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL permet de copier des cellules, des plages, des lignes ou des colonnes dans des feuilles de calcul Excel à l'aide d'une seule méthode Copy qui préserve tout le formatage et le style tout en dupliquant les données entre n'importe quels emplacements ou feuilles de calcul.

La fonction "Copier la cellule" permet de dupliquer le contenu d'une cellule et de le coller dans d'autres cellules. Elle reproduit les données, les formules, le formatage et d'autres attributs de la feuille de calcul. Whether creating spreadsheets from scratch or loading existing Excel files, the copy functionality is essential for efficient data manipulation.

Démarrage rapide : Copier une colonne ou une plage en une seule ligne

Copier des plages entières (cellules, lignes, colonnes ou blocs) d'une feuille à l'autre à l'aide d'un seul appel de méthode. La fonction Copie conserve le style et le formatage tout en rendant l'automatisation d'Excel rapide et simple.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronXL avec le gestionnaire de packages NuGet

    PM > Install-Package IronXL.Excel

  2. Copiez et exécutez cet extrait de code.

    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronXL dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Comment copier une seule cellule dans Excel?

Pour copier le contenu d'une cellule sélectionnée, utilisez la méthode Copy. Transmettez l'objet feuille de calcul comme premier paramètre et la position de départ comme deuxième paramètre. The Copy method retains all styling including font and size, background patterns and colors, and borders and alignment.

:path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-single-cell.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");

workBook.SaveAs("copySingleCell.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");

workBook.SaveAs("copySingleCell.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");

workBook.SaveAs("copySingleCell.xlsx");
$vbLabelText   $csharpLabel

Quel formatage est préservé lors de la copie ?

La méthode Copy préserve toutes les propriétés des cellules, y compris :

  • Cell valeurs et formules
  • Formats de nombres (devises, pourcentages, dates)
  • Style de police (police, taille, gras, italique, couleur)
  • Bordures de cellules et couleurs d'arrière-plan
  • Alignement du texte (horizontal et vertical)
  • Paramètres de protection des cellules

Cette préservation complète permet de s'assurer que les cellules copiées conservent leur aspect et leur fonctionnalité d'origine, à l'instar de l'utilisation de Ctrl+C et Ctrl+V dans Microsoft Excel.

Feuille de calcul montrant la cellule A1 sélectionnée avec une flèche pointant vers la cellule B3 contenant la valeur copiée, démontrant la copie d'une seule cellule

Pourquoi la méthode Copy prend-elle deux paramètres ?

La méthode Copy nécessite deux paramètres pour un contrôle précis :

  1. Paramètre de feuille de travail : spécifie la feuille de travail de destination (identique ou différente au sein du classeur)
  2. Paramètre d'adresse : Définit la position de départ de la cellule pour le contenu collé

Cette conception permet une copie flexible au sein d'une même feuille ou entre différentes feuilles, ce qui est idéal pour créer des rapports récapitulatifs ou consolider des données provenant de sources multiples.

Quand dois-je utiliser la copie d'une seule cellule ou la copie d'une plage ?

Choisissez la copie à cellule unique lorsque :

  • Duplication de valeurs individuelles ou de formules
  • Copie de cellules d'en-tête ou d'étiquettes
  • Reproduction de résultats calculés spécifiques
  • Travailler avec des valeurs récapitulatives

Utilisez le texte de la gamme dans les cas suivants :

  • Déplacement de tableaux de données entiers
  • Duplication de plusieurs cellules liées
  • Copie de lignes ou de colonnes complètes
  • Préserver les relations entre les données

Comment copier plusieurs cellules ou plages?

Like the Clear method, Copy is available in the Range class, allowing execution on any range size. When selecting ranges, IronXL provides flexible copying options:

  • Copier une seule cellule (C10) :

    workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
    workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
    $vbLabelText   $csharpLabel
  • Copier une colonne (A) :

    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
    $vbLabelText   $csharpLabel
  • Copier une ligne (4) :

    workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
    workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
    $vbLabelText   $csharpLabel
  • Copier une plage bidimensionnelle (D6:F8) :

    workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
    workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
    $vbLabelText   $csharpLabel

[{i:(Le deuxième paramètre accepte une adresse qui marque le point de départ de la saisie des données. Les données copiées commenceront à partir de cette adresse et se propageront vers la droite et vers le bas.

:path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-cell-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");

// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");

// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");

// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");

workBook.SaveAs("copyCellRange.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");

// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");

// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");

// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");

workBook.SaveAs("copyCellRange.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");

// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");

// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");

// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");

workBook.SaveAs("copyCellRange.xlsx");
$vbLabelText   $csharpLabel

Qu'arrive-t-il lorsque la plage de destination est trop petite?

IronXL gère automatiquement les différences de taille :

  • Le paramètre de destination ne spécifie que la cellule de départ en haut à gauche
  • L'ensemble des copies de la gamme source, quelle que soit la taille de la destination
  • Les données existantes dans la zone de destination sont écrasées
  • L'opération de copie s'étend à toutes les données sources

Par exemple, la copie d'une plage 3x3 dans la cellule B1 remplit les cellules B1:D3, en écrasant tout contenu existant.

Comment fonctionnent les références aux lignes et aux colonnes ?

IronXL utilise l'indexation à base zéro pour les lignes et les colonnes avec les méthodes GetRow() et GetColumn() :

  • GetColumn(0) renvoie à la colonne A
  • GetColumn(1) renvoie à la colonne B
  • GetRow(0) renvoie à la ligne 1
  • GetRow(3) renvoie à la ligne 4

Cette indexation s'aligne sur les conventions standard des tableaux C#.

Pourquoi utiliser les méthodes GetColumn() et GetRow() ?

les méthodes GetColumn() et GetRow() offrent :

  • Performance : Plus efficace pour des lignes ou des colonnes entières
  • Clarté : Rend l'intention du code plus claire
  • Flexibilité : Renvoie un objet Range prenant en charge toutes les opérations de plage
  • Commodité : Pas besoin de calculer les cellules finales pour les sélections complètes

Ces méthodes conviennent parfaitement à la création de rapports nécessitant des copies de colonnes complètes ou à la duplication de modèles de lignes.

Opérations de copie Excel montrant des flèches depuis les plages sources A1:F10 vers les cellules de destination avec des données copiées en surbrillance

Comment copier des cellules entre différentes feuilles de calcul?

Le premier paramètre accepte un objet de feuille de calcul, ce qui permet de copier et de coller entre différentes feuilles de calcul. Passez un objet de feuille de calcul différent comme premier paramètre. This functionality proves essential when managing multiple worksheets or creating summary sheets from detailed data.

Dans l'exemple suivant, le premier paramètre de la méthode Copy est la feuille de calcul " Sheet2 " : workBook.GetWorksheet("Sheet2")

:path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-to-other-worksheet.cs
using IronXL;

WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");

// Copy entire data range from Sheet1 to Sheet2
sheet1["A1:D10"].Copy(sheet2, "A1");

// Copy with formulas intact
sheet1["E1:E10"].Copy(sheet2, "F1");

// Copy formatting from template sheet
WorkSheet templateSheet = workBook.GetWorkSheet("Template");
templateSheet["A1:Z1"].Copy(sheet2, "A15");

workBook.SaveAs("crossSheetCopy.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet2"), "B3");

workBook.SaveAs("copyAcrossWorksheet.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");

// Copy entire data range from Sheet1 to Sheet2
sheet1["A1:D10"].Copy(sheet2, "A1");

// Copy with formulas intact
sheet1["E1:E10"].Copy(sheet2, "F1");

// Copy formatting from template sheet
WorkSheet templateSheet = workBook.GetWorkSheet("Template");
templateSheet["A1:Z1"].Copy(sheet2, "A15");

workBook.SaveAs("crossSheetCopy.xlsx");
$vbLabelText   $csharpLabel

Quels sont les scénarios courants de copie croisée de feuilles de travail ?

La copie croisée de feuilles de travail est souvent utilisée dans ce type de scénario :

  1. Création de fiches de synthèse : Copier les indicateurs clés des fiches détaillées dans des tableaux de bord
  2. <Réplication de modèles : Copier des modèles formatés dans de nouvelles feuilles de calcul
  3. Consolidation des données : Rassembler les données des feuilles départementales dans des feuilles maîtresses
  4. Génération de rapports : Copier les résultats filtrés dans des feuilles de calcul distinctes
  5. Opérations de sauvegarde : Dupliquer les données critiques sur des feuilles de sauvegarde

When working with formulas that reference other cells, IronXL automatically adjusts relative references based on the new location while maintaining absolute references.

Quand dois-je copier sur une nouvelle feuille de calcul ou sur une feuille existante ?

Copier vers une nouvelle feuille de calcul lorsque:

  • Création de rapports périodiques (quotidiens, hebdomadaires, mensuels)
  • Isoler les données traitées des données brutes
  • Construire des feuilles de travail d'analyse à partir de données sources
  • Générer des vues de données spécifiques à l'utilisateur

Copier sur une feuille de calcul existante lorsque:

  • Ajout de données aux journaux en cours
  • Mise à jour des sections du tableau de bord
  • Consolidation de plusieurs sources de données
  • Gestion des archives historiques

For complex scenarios involving multiple sheets, consider using IronXL's ability to work with DataSets and DataTables for sophisticated data manipulation.

Comment gérer les conflits d'appellation des feuilles de travail?

Veillez à la bonne gestion des feuilles de travail lors de la copie entre feuilles de travail :

// Check if worksheet exists before copying
if (workBook.GetWorkSheet("TargetSheet") == null)
{
    workBook.CreateWorkSheet("TargetSheet");
}

// Safe copy operation
WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet");
sourceSheet["A1:Z100"].Copy(targetSheet, "A1");
// Check if worksheet exists before copying
if (workBook.GetWorkSheet("TargetSheet") == null)
{
    workBook.CreateWorkSheet("TargetSheet");
}

// Safe copy operation
WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet");
sourceSheet["A1:Z100"].Copy(targetSheet, "A1");
$vbLabelText   $csharpLabel

Cette approche permet d'éviter les erreurs d'exécution et de garantir la réussite des opérations de copie, ce qui est particulièrement important pour l'automatisation des processus Excel dans les environnements de production.

Questions Fréquemment Posées

Comment copier une seule cellule dans Excel à l'aide de C# ?

Avec IronXL, vous pouvez copier une seule cellule à l'aide de la méthode Copier. Il suffit de sélectionner la cellule que vous souhaitez copier (par exemple, workSheet["A1"]) et d'appeler la méthode Copy, en passant la feuille de calcul de destination et l'adresse de la cellule cible comme paramètres. IronXL préserve tout le formatage, y compris les polices, les couleurs, les bordures et les formules pendant l'opération de copie.

Quel formatage est préservé lors de la copie de cellules ?

La méthode de copie d'IronXL préserve toutes les propriétés des cellules, y compris les valeurs et formules des cellules, les formats des nombres (devise, pourcentage, dates), le style des polices (police, taille, gras, italique, couleur), les bordures des cellules et les couleurs d'arrière-plan, l'alignement du texte (horizontal et vertical) et les paramètres de protection des cellules. Les cellules copiées conservent ainsi leur aspect et leur fonctionnalité d'origine.

Puis-je copier des colonnes ou des plages entières en une seule fois ?

Oui, IronXL vous permet de copier des colonnes, des lignes ou des plages entières en une seule opération. Vous pouvez utiliser des méthodes comme GetColumn(0).Copy() pour copier une colonne entière ou sélectionner une plage de cellules pour copier plusieurs cellules à la fois. La méthode Copy fonctionne avec n'importe quelle taille de sélection, d'une seule cellule à des feuilles de calcul entières.

Comment copier des cellules entre différentes feuilles de calcul ?

IronXL facilite la copie de cellules entre feuilles de calcul. Lorsque vous utilisez la méthode Copier, spécifiez la feuille de calcul de destination comme premier paramètre (par exemple, workBook.GetWorkSheet("Sheet2")) et l'adresse de la cellule cible comme second paramètre. Cela vous permet de copier des données sur différentes feuilles d'un même classeur.

Quelles sont les étapes minimales requises pour copier des cellules dans Excel ?

Avec IronXL, la copie de cellules ne nécessite que 5 étapes : 1) Télécharger la bibliothèque IronXL C#, 2) Charger votre feuille de calcul Excel existante, 3) Sélectionner la plage, la ligne ou la colonne que vous souhaitez copier, 4) Invoquer la méthode Copy sur la plage sélectionnée, et 5) Transmettre une feuille de calcul et une position de destination à la méthode Copy. L'opération entière peut être réalisée en une seule ligne de code.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,802,965 | Version : 2025.12 vient de sortir