Использование Excel 2013 с неправильными номерами строк С#

У меня странная проблема в моем приложении. Я скопирую некоторые данные в Excel. У меня есть переменная int, называемая rowCounter, которую я установил в 1. Затем я экспортирую данные из своего списка в excel с помощью моей переменной rowCounter (код ниже). Странно, что в 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;
}
2 ответа

Вы добавляете строки вместо чисел:

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

Правильная версия:

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


"B" + rowCounter + m совпадает с "B" + rowCounter.ToString() + m.ToString(). Поэтому, когда rowCounter равен 1 и m равно 0, вы получаете B10.

licensed under cc by-sa 3.0 with attribution.