使用Excel 2013与c#不正确的行号

本文关键字:不正确 Excel 2013 使用 | 更新日期: 2023-09-27 17:49:14

我有一个奇怪的问题在我的应用程序。我复制一些数据到Excel。我有一个名为rowCounter的int变量,我把它设为1。然后,我使用rowCounter变量(下面的代码)从excel中导出列表中的数据。奇怪的是,在excel中,它将数据放入第10行而不是第1行。如果我将rowCounter更改为7,excel将把数据放入第70行。还有其他人有这个问题吗?

当逐步执行代码时,我可以看到rowCounter的值是我所期望的。

int rowCounter = 1;
for(int i = 0; i < _fundCodes.Count; i++)
{
    // some code - pulling some data from a database nothing to do with the row counter
    for (int m = 0; m < missingAuto.Count; m++)
    {
        _xlWorksheet.Range["B" + rowCounter + m].Value = missingAuto[m].FundCode;
        _xlWorksheet.Range["C" + rowCounter + m].Value = missingAuto[m].IdSedol;
        _xlWorksheet.Range["D" + rowCounter + m].Value = missingAuto[m].Currency;
        _xlWorksheet.Range["E" + rowCounter + m].Value = missingAuto[m].Nominal;
        _xlWorksheet.Range["F" + rowCounter + m].Value = missingAuto[m].Price;
    }
    for (int m = 0; m < missingMan.Count; m++)
    {
        _xlWorksheet.Range["H" + rowCounter + m].Value = missingMan[m].FundCode;
        _xlWorksheet.Range["I" + rowCounter + m].Value = missingMan[m].IdSedol;
        _xlWorksheet.Range["J" + rowCounter + m].Value = missingMan[m].Currency;
        _xlWorksheet.Range["K" + rowCounter + m].Value = missingMan[m].Nominal;
        _xlWorksheet.Range["L" + rowCounter + m].Value = missingMan[m].Price;
    }
    int rowAdd = missingAuto.Count > missingMan.Count ? missingAuto.Count : missingMan.Count;
    rowCounter = rowCounter + rowAdd + 2;
}

使用Excel 2013与c#不正确的行号

您正在添加字符串而不是数字:

"B" + rowCounter + m
"B" + 1 + 0
"B10"

正确版本:

"B" + (rowCounter + m).ToString()

"B" + rowCounter + m"B" + rowCounter.ToString() + m.ToString()相同。所以当rowCounter为1 m为0时,你得到B10