2011-07-29 12 views
7

対象シートの特定の行にコピーする方法は?C#を使用してExcelのセルをコピーする

A1からJ10を1枚のシートから2枚目のExcelシートのA15から始まる場所にコピーする必要があります。どうすればC#でこれを達成できますか?以下のCopyメソッドでは、ターゲットExcelシート内の場所を指定するオプションがないようです。

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

あなたがExcelファイルでやっているどのくらいの作業に応じて、私はそのようなhttp://www.spreadsheetgear.comなどのサードパーティのアプリケーションに探してお勧めします –

答えて

9

ここで間違った方法を使用していると思います...コピーメソッドではなく貼り付けメソッドを使用したいと思います。

Range.PasteSpecialメソッドを試してみてください...あなたのトリックを行う必要があります。

このような何か...

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

ありがとうございます。出来た。また、どのように宛先の行の範囲の行の高さを設定することができます。高さのプロパティは読み取り専用です。 – Anand

+0

@Anand - 範囲のRowHeightプロパティを使用してください –

+0

私はこれを働かせようとしていますが、フォーマットをうまくコピーしている間に式をコピーしません。別のExcelアプリケーションオブジェクトの異なるワークブック間でコピーしています。 –

関連する問題