2011-06-12 15 views
0

をnextlineし、私はそれが唯一のコードから明らかである列A1への書き込みを得るものは何でも私が送信され、MSG、しかし、2007年書き込みがExcel 2007で現在

public static void createSpreadsheet(String msg) 
    { 
     Excel.Application oXL; 
     Excel.Workbook oWB; 
     Excel.Worksheet oSheet; 
     Excel.Range oRng; 
     oXL = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 
     oWB = oXL.Workbooks.get_Item(1); 
     oSheet = (Excel.Worksheet)oWB.ActiveSheet; 

     oXL.Visible = true; 
     oXL.UserControl = false; 
     oRng = oSheet.get_Range("A1", "A" + 1); 
     oRng.Value2 = msg; 

    } 

をエクセルに書き込み、次の方法があります上記。

上記のコードを拡張すると、追加のメッセージが送信されるたびに、以前に書き込まれた列の下に追加されます。 コンソールアプリケーションでは、これを行うことができます:Console.writeline(msg)。それをどのようにして達成するのですか?

例:メッセージ1(COL A1) メッセージ2(COL A2) メッセージ3(COL A3) ....

答えて

0

currentColumnと呼ばれる変数を定義し、メソッドに渡し:

呼び出し元で
public static void createSpreadsheet(String msg, column) 

// there is an integer variable called currentColumn 
createSpreadsheet("a message", currentColumn++) 
+0

ありがとう..今、私はそれをどのようにすべきか理解しています。 – Queryer

0

あなたが唯一の現在A1セルを取得しています。他の行に書き込む場合は、パラメータを範囲に変更してください。例:

oRng = oSheet.Range["A" + rowNumber, "A" + rowNumber]; 
oRng.Value = msg; 

これで、各メッセージの後にrowNumberを動的に増やすことができます。同じことが列に対して機能し、単に "A"を適切な列に置き換えます。