2011-07-29 119 views
7

¿Cómo copiar a una fila específica en la hoja de destino?Copiar celdas en Excel utilizando C#

Necesito copiar A1 a J10 de una hoja en una ubicación de Excel a partir de A15 en la segunda hoja de Excel. ¿Cómo puedo lograr esto en C#? En el siguiente método Copiar parece que no hay ninguna opción para especificar la ubicación en la hoja de Excel de destino.

ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBookTemp.Sheets[1]; 
ObjWorkSheet.Copy(Type.Missing, ObjWorkBookGeneral.Sheets[1]); 
+0

Dependiendo de la cantidad de trabajo que está haciendo con los archivos de Excel, recomiendo buscar en una aplicación de terceros, como http://www.spreadsheetgear.com –

Respuesta

9

Creo que aquí está utilizando el método equivocado ... desea utilizar un método de pegar y no un método de copia.

Pruebe el método Range.PasteSpecial ... debería hacer el truco para usted.

Algo como esto ...

Excel.Range sourceRange = firstWorksheet.get_Range("A1", "J10"); 
Excel.Range destinationRange = secondWorksheet.get_Range("A15", "J25"); 

sourceRange.Copy(Type.Missing); 
destinationRange.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteFormulas, Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false); 
+0

Gracias. Funcionó. Además, ¿cómo puedo establecer la altura de fila de un rango de filas en el destino de Excel? Parece que la propiedad de altura es de solo lectura. – Anand

+0

@Anand: use la propiedad RowHeight del rango –

+0

. Estoy intentando que esto funcione y, aunque copia el formateo correctamente, no copia las fórmulas. Estoy copiando entre diferentes libros de trabajo en distintos objetos de aplicación de Excel. –

Cuestiones relacionadas