2011-07-29 13 views
7

Cách sao chép sang hàng cụ thể trong trang đích?Sao chép các ô bằng excel bằng cách sử dụng C#

Tôi cần phải sao chép A1 sang J10 từ một trang tính trong một excel đến vị trí bắt đầu từ A15 trong bảng excel thứ hai. Làm thế nào tôi có thể đạt được điều này trong C#? Trong phương thức Sao chép bên dưới, dường như không có tùy chọn để chỉ định vị trí trong trang tính mục tiêu excel.

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

Tùy thuộc vào bao nhiêu công việc bạn đang làm với các file Excel, tôi muốn khuyên bạn nên nhìn vào một ứng dụng bên thứ ba như http://www.spreadsheetgear.com –

Trả lời

9

Tôi nghĩ bạn đang sử dụng phương pháp sai ở đây ... bạn muốn sử dụng phương thức Dán không phải là phương pháp sao chép.

Hãy thử phương pháp Range.PasteSpecial ... nên thực hiện thủ thuật cho bạn.

Something như thế này ...

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

Cảm ơn. Nó đã làm việc. Ngoài ra làm thế nào tôi có thể thiết lập chiều cao hàng của một loạt các hàng trong điểm đến excel. Có vẻ như thuộc tính chiều cao chỉ đọc. – Anand

+0

@Anand - sử dụng thuộc tính RowHeight trong phạm vi –

+0

Tôi đang cố gắng làm việc này và trong khi bản sao định dạng tốt, nó không sao chép công thức. Tôi đang sao chép giữa các sổ làm việc khác nhau trong các đối tượng Excel Application riêng biệt. –