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
- Selecciona la fila o columna que deseas copiar.
- Para copiar filas o columnas, haz clic en Copiar en la barra de herramientas Estándar, o presiona CTRL+C.
- Selecciona una fila o columna debajo o a la derecha de donde deseas copiar tu selección.
- 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
- Selecciona las celdas que contienen los datos u otros atributos que desees copiar.
- En la pestaña Inicio, haz clic en Copiar.
- Haz clic en la primera celda en el área donde quieras pegar lo que copiaste.
- En la pestaña Inicio, haz clic en la flecha junto a Pegar, y luego selecciona Pegado especial.
- 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") |
Al copiar filas, es importante tener en cuenta las imágenes relacionadas, gráficos u otros objetos de dibujo, ya que es lo mismo que en Microsoft Excel:
- Si el índice de fila de origen es 5, la imagen, el gráfico, etc., se copian si están contenidos en las tres filas (el índice de fila de inicio es 4 y el índice de fila final es 6).
- Las imágenes, gráficos, etc. existentes en la fila de destino no se eliminarán.
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) |