Первый: все индексы основаны на 0. Таким образом,
...
int rownum = 1;
Row row = sheet.createRow(rownum);
...
создает строку second . Первая строка будет
...
int rownum = 0;
Row row = sheet.createRow(rownum);
...
Вторая: сначала в row = sheet.createRow(rownum++);
создается строка, а затем увеличивается rownum
. Таким образом, первая строка создается снова вместо второй строки.
Do
...
row = sheet.createRow(++rownum);
...
вместо.