Почему выводится только последний элемент в цикле?
так так так... то ли.. int i = 0; вынести в ДО цикла.. то ли /upd*** сори.. ))
Каждый проход foreach вы заполняете 0 ячейку 0 строки и 1 ячейку 0 строки. Поэтому так все странно и работает. Объявление i выкинуть из тела цикла и должно заработать.