Я думаю, что есть две вещи, которые могут помочь в этой ситуации
1)
writableTempSource.write();
Это должно произойти как раз перед закрытием writableTempSource
. Если бы вы закомментировали блок for, вы бы увидели, что у вас все еще есть файл, созданный в «неподдерживаемом формате». Эта строка исправит это.
2)
Я полагаю, что у вас могут возникнуть проблемы с переменной i
в цикле for. Учти это. Вы проверяете sourceSheet.getRows()
на каждой итерации. Однако, если строки удаляются, то это значение изменяется каждый раз, когда происходит удаление. В результате вы можете пропустить строки, которые не являются необходимыми. Java, естественно, обеспечивает это для циклов с ConcurrentModificationException
, однако в волшебном королевстве API-Land кажется, что вы не защищены от подобных действий.