我的应用程序中有一个奇怪的问题。我正在将一些数据复制到 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;
}
最佳答案
您正在添加字符串而不是数字:
"B" + rowCounter + m
"B" + 1 + 0
"B10"
正确的版本:
"B" + (rowCounter + m).ToString()
关于c# - 将 Excel 2013 与 C# 不正确的行号一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305924/