Cómo copiar celdas usando IronXL

Cómo copiar celdas en C# con IronXL

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

IronXL permite copiar celdas, rangos, filas o columnas en hojas de cálculo de Excel utilizando un único método Copy que conserva todo el formato y estilo mientras duplica datos entre cualquier ubicación u hoja de cálculo.

La función "Copiar celda" duplica el contenido de una celda y lo pega en otras. Replica los datos, las fórmulas, el formato y otros atributos de la hoja de cálculo. Whether creating spreadsheets from scratch or loading existing Excel files, the copy functionality is essential for efficient data manipulation.

como-título:2(Inicio rápido: Copiar una columna o rango en una línea)

Copie rangos enteros (celdas individuales, filas, columnas o bloques) de una hoja a otra mediante una llamada a un método. La función Copy conserva el estilo y el formato, al tiempo que agiliza y simplifica la automatización de Excel.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor de paquetes NuGet

    PM > Install-Package IronXL.Excel

  2. Copie y ejecute este fragmento de código.

    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronXL en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


¿Cómo copiar una sola celda en Excel?

Para copiar el contenido de una celda seleccionada, utilice el método Copiar. Pasa el objeto de la hoja de trabajo como primer parámetro y la posición inicial como segundo parámetro. 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

¿Qué formato se conserva al copiar?

El método Copy conserva todas las propiedades de las celdas, incluyendo:

  • Valores de celda y fórmulas
  • Formatos numéricos (moneda, porcentaje, fechas)
  • Estilo de fuente (tipo de letra, tamaño, negrita, cursiva, color)
  • Bordes de celda y colores de fondo
  • Alineación del texto (horizontal y vertical)
  • Ajustes de protección celular

Esta conservación exhaustiva garantiza que las celdas copiadas mantengan su aspecto y funcionalidad originales, de forma similar al uso de Ctrl+C y Ctrl+V en Microsoft Excel.

Hoja de cálculo que muestra la celda A1 seleccionada con una flecha apuntando a la celda B3 que contiene el valor copiado, demostrando la copia de una sola celda

¿Por qué el método Copy requiere dos parámetros?

El método Copy requiere dos parámetros para un control preciso:

  1. Parámetro de hoja de trabajo: Especifica la hoja de trabajo de destino (la misma o diferente dentro del libro de trabajo)
  2. Parámetro de dirección: Define la posición inicial de la celda para el contenido pegado

Este diseño permite la copia flexible dentro de la misma hoja o a través de diferentes hojas, ideal para crear informes resumidos o consolidar datos de múltiples fuentes.

¿Cuándo debo utilizar la copia de celda única frente a la copia de rango?

Elija la copia de celda única cuando:

  • Duplicación de valores individuales o fórmulas
  • Copia de celdas de encabezado o etiquetas
  • Replicación de resultados calculados específicos
  • Trabajar con valores de resumen

Utilice la copia de alcance cuando:

  • Desplazamiento de tablas de datos completas
  • Duplicación de varias celdas relacionadas
  • Copiar filas o columnas completas
  • Preservar las relaciones entre datos

¿Cómo puedo copiar varias celdas o rangos?

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:

  • Copie una sola celda (C10):

    workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
    workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
    $vbLabelText   $csharpLabel
  • Copiar una columna (A):

    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
    $vbLabelText   $csharpLabel
  • Copiar una fila (4):

    workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
    workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
    $vbLabelText   $csharpLabel
  • Copiar un rango bidimensional (D6:F8):

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

Por favor notaEl segundo parámetro acepta una ubicación de dirección que marca el punto de inicio de la entrada de datos. Los datos copiados comenzarán desde esa dirección y se extenderán hacia la derecha y hacia abajo.

: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é ocurre cuando el rango de destino es demasiado pequeño?

IronXL gestiona automáticamente las diferencias de tamaño:

  • El parámetro de destino especifica únicamente la celda de inicio superior izquierda
  • Copias de toda la gama de fuentes, independientemente del tamaño del destino
  • Los datos existentes en el área de destino se sobrescriben
  • La operación de copia se amplía para dar cabida a todos los datos de origen

Por ejemplo, al copiar un rango de 3x3 en la celda B1 se rellenan las celdas B1:D3, sobrescribiendo cualquier contenido existente.

¿Cómo funcionan las referencias de filas y columnas?

IronXL utiliza la indexación basada en cero para filas y columnas con los métodos GetRow() y GetColumn():

  • GetColumn(0) se refiere a la columna A
  • GetColumn(1) se refiere a la columna B
  • GetRow(0) se refiere a la fila 1
  • GetRow(3) se refiere a la fila 4

Esta indexación se ajusta a las convenciones estándar de C#.

¿Por qué utilizar los métodos GetColumn() y GetRow()?

los métodos GetColumn() y GetRow() ofrecen:

  • Rendimiento: Más eficaz para filas o columnas enteras
  • Claridad: Aclara la intención del código
  • Flexibilidad: Devuelve un objeto Range que admite todas las operaciones de rango
  • Comodidad: No es necesario calcular celdas finales para selecciones completas

Estos métodos destacan a la hora de crear informes que requieren copias de columnas completas o de duplicar plantillas de filas.

Operaciones de copia de Excel que muestran flechas desde los rangos de origen A1:F10 hasta las celdas de destino con los datos copiados resaltados

¿Cómo puedo copiar celdas entre diferentes hojas de cálculo?

El primer parámetro acepta un objeto de hoja de cálculo, lo que permite copiar y pegar en diferentes hojas de cálculo. Pase un objeto de hoja de cálculo diferente como primer parámetro. This functionality proves essential when managing multiple worksheets or creating summary sheets from detailed data.

Por favor notaEn el siguiente ejemplo, el primer parámetro del método Copy es la hoja de cálculo "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

¿Cuáles son los escenarios comunes de copia entre hojas de trabajo?

La copia cruzada de hojas de trabajo sirve con frecuencia en estos casos:

  1. Creación de hojas de resumen: Copie las métricas clave de las hojas de detalle en cuadros de mando
  2. Replicación de plantillas: Copiar plantillas formateadas a nuevas hojas de trabajo
  3. Consolidación de datos: Reunir datos de hojas departamentales en hojas maestras
  4. Generación de informes: Copie los resultados filtrados en hojas de trabajo independientes para la generación de informes
  5. Operaciones de copia de seguridad: Duplicar datos críticos en hojas de copia de seguridad

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

¿Cuándo debo copiar en una hoja de cálculo nueva o en una existente?

Copiar a una nueva hoja de cálculo cuando:

  • Creación de informes periódicos (diarios, semanales, mensuales)
  • Aislar los datos procesados de los datos brutos
  • Creación de hojas de trabajo de análisis a partir de datos de origen
  • Generación de vistas de datos específicas del usuario

Copiar a una hoja de cálculo existente cuando:

  • Añadir datos a registros en curso
  • Actualización de las secciones del panel de control
  • Consolidación de múltiples fuentes de datos
  • Mantenimiento de registros históricos

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

¿Cómo manejar los conflictos de nombres de hojas de cálculo?

Garantizar una gestión adecuada de las hojas de trabajo al copiar entre ellas:

// 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

Este enfoque evita errores en tiempo de ejecución y garantiza el éxito de las operaciones de copia, especialmente importantes cuando se automatizan procesos de Excel en entornos de producción.

Preguntas Frecuentes

¿Cómo se copia una sola celda en Excel utilizando C#?

Con IronXL, puede copiar una sola celda utilizando el método Copiar. Simplemente seleccione la celda que desea copiar (por ejemplo, workSheet["A1"]) y llame al método Copiar, pasando la hoja de trabajo de destino y la dirección de la celda de destino como parámetros. IronXL conserva todo el formato, incluyendo fuentes, colores, bordes y fórmulas durante la operación de copia.

¿Qué formato se conserva al copiar celdas?

El método de copia de IronXL conserva todas las propiedades de las celdas, incluidos los valores y las fórmulas de las celdas, los formatos numéricos (moneda, porcentaje, fechas), el estilo de fuente (tipo de letra, tamaño, negrita, cursiva, color), los bordes de las celdas y los colores de fondo, la alineación del texto (horizontal y vertical) y la configuración de protección de las celdas. Esto garantiza que las celdas copiadas mantengan su aspecto y funcionalidad originales.

¿Puedo copiar columnas o rangos enteros de una sola vez?

Sí, IronXL le permite copiar columnas enteras, filas o rangos en una sola operación. Puede utilizar métodos como GetColumn(0).Copy() para copiar una columna completa o seleccionar un rango de celdas para copiar varias celdas a la vez. El método Copiar funciona con cualquier tamaño de selección, desde celdas individuales hasta hojas de cálculo completas.

¿Cómo puedo copiar celdas entre diferentes hojas de cálculo?

IronXL facilita la copia de celdas entre hojas de trabajo. Cuando utilice el método Copiar, especifique la hoja de trabajo de destino como primer parámetro (por ejemplo, workBook.GetWorkSheet("Sheet2")) y la dirección de la celda de destino como segundo parámetro. Esto le permite copiar datos a través de diferentes hojas dentro del mismo libro de trabajo.

¿Cuáles son los pasos mínimos necesarios para copiar celdas en Excel?

Con IronXL, copiar celdas requiere sólo 5 pasos: 1) Descargue la biblioteca IronXL C#, 2) Cargue su hoja de cálculo Excel existente, 3) Seleccione el rango, la fila o la columna que desea copiar, 4) Invoque el método Copiar en el rango seleccionado y 5) Pase una hoja de trabajo de destino y una posición al método Copiar. Toda la operación puede realizarse en una sola línea de código.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,802,965 | Versión: 2025.12 recién lanzado