在Excel2007中写入下一行

本文关键字:一行 Excel2007 | 更新日期: 2023-09-27 17:58:53

目前,我有以下方法可以写入Excel2007。

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;
    }

然而,无论我发送了什么消息,它都只能写入A1列,这从上面的代码中可以明显看出。

我如何扩展上面的代码,以便每当发送额外的消息时,它们都会被附加在以前编写的列下面。??在控制台应用程序中,我可以这样做:console.writeline(msg)。我如何在excel中实现这一点?

例如:消息1(A1栏)消息2(A2栏)消息3(A3栏)…

在Excel2007中写入下一行

定义一个名为currentColumn的变量并将其传递给方法:

public static void createSpreadsheet(String msg, column)

呼叫中:

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

您当前只得到A1单元格。如果您想写入其他行,只需将参数更改为您的范围即可。例如:

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

现在,您可以在每条消息之后动态地增加rowNumber。同样的方法也适用于列,只需将"A"替换为相应的列即可。