Copiando Filas y Columnas

Introducción

A veces, necesitas copiar filas y columnas en una hoja de cálculo sin copiar toda la hoja. Con Aspose.Cells, es posible copiar filas y columnas dentro o entre libros de trabajo. Cuando se copia una fila (o columna), se copia también los datos contenidos en ella, incluidas fórmulas - con referencias actualizadas - y valores, comentarios, formato de celdas, celdas ocultas, imágenes y otros objetos de dibujo.

Cómo copiar filas y columnas con Microsoft Excel

  1. Selecciona la fila o columna que deseas copiar.
  2. Para copiar filas o columnas, haz clic en Copiar en la barra de herramientas Estándar, o presiona CTRL+C.
  3. Selecciona una fila o columna debajo o a la derecha de donde deseas copiar tu selección.
  4. Al copiar filas o columnas, haz clic en Celdas Copiadas en el menú Insertar.

Cómo pegar filas y columnas usando opciones de pegado con Microsoft Excel

  1. Selecciona las celdas que contienen los datos u otros atributos que desees copiar.
  2. En la pestaña Inicio, haz clic en Copiar.
  3. Haz clic en la primera celda en el área donde quieras pegar lo que copiaste.
  4. En la pestaña Inicio, haz clic en la flecha junto a Pegar, y luego selecciona Pegado especial.
  5. Selecciona las opciones que desees.

Cómo copiar filas y columnas utilizando Aspose.Cells for .NET

Cómo copiar filas individuales

Aspose.Cells proporciona el método copy_row de la clase Cells. Este método copia todos los tipos de datos, incluidas fórmulas, valores, comentarios, formatos de celda, celdas ocultas, imágenes y otros objetos dibujados, desde la fila de origen a la fila de destino.

El método copy_row toma los siguientes parámetros:

  • el objeto fuente Cells,
  • índice de fila de origen, y
  • índice de fila de destino.

Utilice este método para copiar una fila dentro de una hoja, o a otra hoja. El método copy_row funciona de manera similar a Microsoft Excel. Por ejemplo, no es necesario establecer explícitamente la altura de la fila de destino, ese valor también se copia.

El siguiente ejemplo muestra cómo copiar una fila en una hoja de cálculo. Utiliza un archivo de plantilla de Microsoft Excel y copia la segunda fila (completa con datos, formato, comentarios, imágenes, etc.) y la pega en la 12ª fila en la misma hoja de cálculo.

Puedes omitir el paso que obtiene la altura de la fila fuente usando el método Cells.get_row_height y luego establece la altura de la fila de destino usando el método Cells.set_row_height ya que el método copy_row se encarga automáticamente de la altura de la fila.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Open the existing excel file.
excelWorkbook1 = Workbook(dataDir + "book1.xls")
# Get the first worksheet in the workbook.
wsTemplate = excelWorkbook1.worksheets[0]
# Copy the second row with data, formattings, images and drawing objects
# To the 16th row in the worksheet.
wsTemplate.cells.copy_row(wsTemplate.cells, 1, 15)
# Save the excel file.
excelWorkbook1.save(dataDir + "output.xls")

Cómo Copiar Múltiples Filas

También puedes copiar múltiples filas en una nueva ubicación mientras usas el método Cells.copy_rows que toma un parámetro adicional de tipo entero para especificar el número de filas fuente que se copiarán.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook class by loading the existing spreadsheet
workbook = Workbook(dataDir + "aspose-sample.xlsx")
# Get the cells collection of worksheet by name Rows
cells = workbook.worksheets.get("Rows").cells
# Copy the first 3 rows to 7th row
cells.copy_rows(cells, 0, 6, 3)
# Save the result on disc
workbook.save(dataDir + "output_out.xlsx")

Cómo Copiar Columnas

Aspose.Cells proporciona el método copy_column de la clase Cells, este método copia todo tipo de datos, incluidas fórmulas, con referencias actualizadas, valores, comentarios, formatos de celdas, celdas ocultas, imágenes y otros objetos dibujados de la columna fuente a la columna de destino.

El método copy_column toma los siguientes parámetros:

  • el objeto fuente Cells,
  • índice de columna de origen, y
  • el índice de columna de destino.

Utiliza el método copy_column para copiar una columna dentro de una hoja o hacia otra hoja.

Este ejemplo copia una columna de una hoja de cálculo y la pega en una hoja de cálculo en otro libro.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create another Workbook.
excelWorkbook1 = Workbook(dataDir + "book1.xls")
# Get the first worksheet in the book.
ws1 = excelWorkbook1.worksheets[0]
# Copy the first column from the first worksheet of the first workbook into
# The first worksheet of the second workbook.
ws1.cells.copy_column(ws1.cells, ws1.cells.columns[0].index, ws1.cells.columns[2].index)
# Autofit the column.
ws1.auto_fit_column(2)
# Save the excel file.
excelWorkbook1.save(dataDir + "output.xls")

Cómo Copiar Múltiples Columnas

Similar al método Cells.copy_rows, las APIs de Aspose.Cells también proporcionan el método Cells.copy_columns para copiar varias columnas de origen a una nueva ubicación.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook class by loading the existing spreadsheet
workbook = Workbook(dataDir + "aspose-sample.xlsx")
# Get the cells collection of worksheet by name Columns
cells = workbook.worksheets.get("Columns").cells
# Copy the first 3 columns 7th column
cells.copy_columns(cells, 0, 6, 3)
# Save the result on disc
workbook.save(dataDir + "output_out.xlsx")

Cómo Pegar Filas y Columnas con Opciones de Pegado

Aspose.Cells ahora proporciona PasteOptions al usar las funciones copy_rows y copy_columns. Permite configurar una opción de pegado adecuada similar a Excel.

from aspose.cells import CopyOptions, PasteOptions, PasteType, SaveFormat, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
# Source directory
sourceDir = RunExamples.Get_SourceDirectory()
# Output directory
outputDir = RunExamples.Get_OutputDirectory()
# Load sample excel file
wb = Workbook(sourceDir + "sampleChangeChartDataSource.xlsx")
# Access the first sheet which contains chart
source = wb.worksheets[0]
# Add another sheet named DestSheet
destination = wb.worksheets.add("DestSheet")
# Set CopyOptions.ReferToDestinationSheet to true
options = CopyOptions()
options.refer_to_destination_sheet = True
# Set PasteOptions
pasteOptions = PasteOptions()
pasteOptions.paste_type = PasteType.VALUES
pasteOptions.only_visible_cells = 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.cells.copy_rows(source.cells, 0, 0, source.cells.max_display_range.row_count, options, pasteOptions)
# Save workbook in xlsx format
wb.save(outputDir + "outputChangeChartDataSource.xlsx", SaveFormat.XLSX)