У меня есть консольное приложение, которое извлекает данные из веб-службы. Он напишет ответ на файл excel. Моя логика в порядке с одной строкой данных, но если ее несколько, нужно писать в файл excel должным образом.Петля в списке строк данных для excel
int i = 0;
int j = 0;
int k = 0;
foreach (var response in responseList)
{
dt = response;
for (i = 0; i <= dt.Rows.Count - 1; i++)
{
for (j = 0; j <= dt.Columns.Count - 1; j++)
{
xlWorkSheet.Cells[i + 1, j + 1] = dt.Rows[i].ItemArray[j].ToString();
}
}
}
Моя проблема с этим кодом в том, что строки excel, которые записываются, всегда одинаковы.
Пример: первый ответ имеет 20 строк, второй ответ - 10 строк. Но после цикла мой excel генерировал только 20 строк. Похоже, что не все данные не записываются. Любые идеи почему?
EDIT
Я попытался код ниже, но до сих пор не повезло.
int jOffset = 0;
int iOffset = 0;
foreach (var response in responseList)
{
dt = response;
for (i = 0; i <= dt.Rows.Count - 1; i++)
{
for (j = 0; j <= dt.Columns.Count - 1; j++)
{
xlWorkSheet.Cells[i + iOffset + 1, j + jOffset + 1] = dt.Rows[i].ItemArray[j].ToString();
}
}
jOffset++;
iOffset++;
}
Потому что вы начинаете с '0' каждый раз. Вы каждый раз переписываете свои предыдущие ответы. Вам нужно сохранить 'iOffset' и' jOffset', а затем написать: 'xlWorkSheet.Cells [i + iOffset + 1, j + jOffset + 1] = dt.Rows [i] .ItemArray [j] .ToString();' , Тогда, конечно, приращение 'iOffset' и' jOffset' по мере необходимости – Rob
@Rob - см. Edit, я получаю тот же подсчет строк. –
где редактирование? –