使用C#的Excel行插入

时间:2015-11-15 05:07:26

标签: c#

我正在使用按钮(Form1,Panel1)在表单上创建动态文本框。我将这些动态的文本发送到Excel(使用Form2中的按钮),每个文本框都在新行上。如果我从一个行数不限的默认电子表格开始,它将使用" foreach"环。如果我尝试为每个文本框执行插入行,则将插入行,但只有最后一个文本框将显示单元格中的数据。 IE:有5个文本框,#5的文本将显示。这是我正在使用的代码:

int row = 1;
foreach (TextBox dynamicTxtBx in sourcePanel.Controls.OfType<TextBox>())
{
    worksheet.Rows[1].Insert();
    worksheet.Cells[row++, "A"].value = dynamicTxtBx.Text;
    // ...
}

1 个答案:

答案 0 :(得分:2)

试试这个:

int row = 1;

foreach (TextBox dynamicTxtBx in sourcePanel.Controls.OfType<TextBox>())
{
    worksheet.Rows[row].Insert();
    worksheet.Cells[row++, "A"].value = dynamicTxtBx.Text;
    // ...
}

在Row [1]处执行插入时,将按下所有当前行。 例如:第2行变为第3行,第3行变为第4行,依此类推。 这就是值被覆盖的原因,只有你输入的最后一个值保留。

您可以在Excel工作表中模拟这一点,以便更清楚地了解这一点。打开Excel工作表。在第1行插入。写任何价值。再次插入并写入下一行。您之前输入的值会被一行向下推,最后会覆盖之前的值。