Copiar filas y columnas
Introducción
A veces, necesita copiar filas y columnas en una hoja de trabajo sin copiar toda la hoja de trabajo. Con Aspose.Cells, es posible copiar filas y columnas dentro o entre libros de trabajo. Cuando se copia una fila (o columna), también se copian los datos contenidos en ella, incluidas las fórmulas (con referencias actualizadas), los valores, los comentarios, el formato, las celdas ocultas, las imágenes y otros objetos de dibujo.
Copiar filas y columnas con Microsoft Excel
- Seleccione la fila o columna que desea copiar.
- Para copiar filas o columnas, haga clic enCopiar sobre elEstándar barra de herramientas, o presioneCONTROL+C.
- Seleccione una fila o columna debajo o a la derecha de donde desea copiar su selección.
- Cuando esté copiando filas o columnas, haga clic enCopiado Cells sobre elInsertar menú.
Pegar filas y columnas usando opciones de pegado con Microsoft Excel
- Seleccione las celdas que contienen los datos u otros atributos que desea copiar.
- En la pestaña Inicio, haga clic enCopiar.
- Haga clic en la primera celda en el área donde deseapegar lo que copiaste.
- En la pestaña Inicio, haga clic en la flecha junto aPegar y luego seleccionePegar Especial.
- Selecciona elopciones quieres.
Usando Aspose.Cells
Copiar filas individuales
Aspose.Cells proporciona elCopiar fila metodo de laCellsclase. Este método copia todos los tipos de datos, incluidas fórmulas, valores, comentarios, formatos de celda, celdas ocultas, imágenes y otros objetos de dibujo de la fila de origen a la fila de destino.
ÉlCopiar filamétodo toma los siguientes parámetros:
- la fuenteCellsobjeto,
- el índice de la fila de origen, y
- el índice de la fila de destino.
Utilice este método para copiar una fila dentro de una hoja o en otra hoja. ÉlCopiar filaEl método funciona de manera similar a Microsoft Excel. Entonces, por ejemplo, no necesita establecer la altura de la fila de destino explícitamente, 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 Excel de plantilla Microsoft y copia la segunda fila (completa con datos, formato, comentarios, imágenes, etc.) y la pega en la fila 12 en la misma hoja de trabajo.
Puede omitir el paso que obtiene la altura de la fila de origen utilizando elCells.GetRowHeight y luego establece la altura de la fila de destino usando elCells.SetRowHeight método como elCopiar filaEl método se ocupa automáticamente de la altura de la fila.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Open the existing excel file. | |
Workbook excelWorkbook1 = new Workbook(dataDir + "book1.xls"); | |
// Get the first worksheet in the workbook. | |
Worksheet wsTemplate = excelWorkbook1.Worksheets[0]; | |
// Copy the second row with data, formattings, images and drawing objects | |
// To the 16th row in the worksheet. | |
wsTemplate.Cells.CopyRow(wsTemplate.Cells, 1, 15); | |
// Save the excel file. | |
excelWorkbook1.Save(dataDir + "output.xls"); |
Al copiar filas, es importante tener en cuenta las imágenes, gráficos u otros objetos de dibujo relacionados, ya que esto es lo mismo con Microsoft Excel:
- Si el índice de la fila de origen es 5, la imagen, el gráfico, etc., se copia si está contenido en las tres filas (el índice de la fila inicial es 4 y el índice de la fila final es 6).
- Las imágenes, gráficos, etc. existentes en la fila de destino no se eliminarán.
Copiar varias filas
También puede copiar varias filas en un nuevo destino mientras usa elCells.CopyRowsmétodo que toma un parámetro adicional de tipo entero para especificar el número de filas de origen que se van a copiar.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook class by loading the existing spreadsheet | |
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx"); | |
// Get the cells collection of worksheet by name Rows | |
Cells cells = workbook.Worksheets["Rows"].Cells; | |
// Copy the first 3 rows to 7th row | |
cells.CopyRows(cells, 0, 6, 3); | |
// Save the result on disc | |
workbook.Save(dataDir + "output_out.xlsx"); |
Copiando columnas
Aspose.Cells proporciona elCopiar columna metodo de laCellsclase, este método copia todo tipo de datos, incluidas fórmulas, con referencias actualizadas, y valores, comentarios, formatos de celda, celdas ocultas, imágenes y otros objetos de dibujo de la columna de origen a la columna de destino.
ÉlCopiar columnamétodo toma los siguientes parámetros:
- la fuenteCellsobjeto,
- índice de la columna fuente, y
- el índice de la columna de destino.
Utilizar elCopiar columnamétodo para copiar una columna dentro de una hoja o en otra hoja.
Este ejemplo copia una columna de una hoja de cálculo y la pega en una hoja de cálculo de otro libro.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create another Workbook. | |
Workbook excelWorkbook1 = new Workbook(dataDir + "book1.xls"); | |
// Get the first worksheet in the book. | |
Worksheet 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.CopyColumn(ws1.Cells, ws1.Cells.Columns[0].Index, ws1.Cells.Columns[2].Index); | |
// Autofit the column. | |
ws1.AutoFitColumn(2); | |
// Save the excel file. | |
excelWorkbook1.Save(dataDir + "output.xls"); |
Copiar varias columnas
Similar aCells.CopyRows método, las API Aspose.Cells también proporcionan elCells.CopyColumnsmétodo para copiar varias columnas de origen en una nueva ubicación.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook class by loading the existing spreadsheet | |
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx"); | |
// Get the cells collection of worksheet by name Columns | |
Cells cells = workbook.Worksheets["Columns"].Cells; | |
// Copy the first 3 columns 7th column | |
cells.CopyColumns(cells, 0, 6, 3); | |
// Save the result on disc | |
workbook.Save(dataDir + "output_out.xlsx"); |
Pegar filas/columnas con opciones de pegado
Aspose.Cells ahora proporcionaPasteOptions durante el uso de funcionesCopiar filas yCopiar columnas. Permite establecer la opción de pegado apropiada similar a Excel.
// 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 | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Load sample excel file | |
Workbook wb = new Workbook(sourceDir + "sampleChangeChartDataSource.xlsx"); | |
// Access the first sheet which contains chart | |
Worksheet source = wb.Worksheets[0]; | |
// Add another sheet named DestSheet | |
Worksheet destination = wb.Worksheets.Add("DestSheet"); | |
// Set CopyOptions.ReferToDestinationSheet to true | |
CopyOptions options = new CopyOptions(); | |
options.ReferToDestinationSheet = true; | |
// Set PasteOptions | |
PasteOptions pasteOptions = new PasteOptions(); | |
pasteOptions.PasteType = PasteType.Values; | |
pasteOptions.OnlyVisibleCells = 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.CopyRows(source.Cells, 0, 0, source.Cells.MaxDisplayRange.RowCount, options, pasteOptions); | |
// Save workbook in xlsx format | |
wb.Save(outputDir + "outputChangeChartDataSource.xlsx", SaveFormat.Xlsx); |