Редактирование большого файла excel с помощью SAX + SXSSF

Я пытаюсь отредактировать существующий файл excel с помощью SXSSF. Этот Excel может содержать 1 миллион записей. Я должен проверить каждую строку в Excel, и если записи недействительны, добавить сообщение об ошибке в последний столбец строки с ошибками в ней. Сначала выполняется процесс проверки, тогда я запишу номер строки, который недействителен. как только вся проверка будет завершена, я возьму копию файла и напишу подробности об ошибке в конце каждой ошибочной строки. Поскольку SXSSF предназначен только для записи, я получаю нулевое значение, когда пытаюсь получить недопустимую строку с номером строки. Пожалуйста, предложите лучший способ решить эту проблему.

Я нашел несколько предложений по использованию SAX + SXSSF, чтобы сделать это в следующих потоках.

poi читать существующий Excel и редактировать большие данные

Как читать и редактировать огромные файлы Excel, используя POI?

Я знаю, как читать excel с помощью SAX. Но не знаю, как связать это с SXSSF и отредактировать excel. Но было бы здорово, если бы кто-нибудь поделился примером кода.

Заранее спасибо.


person Renjith    schedule 07.05.2014    source источник
comment
Не можете ли вы просто пойти по более простому пути, добавить еще несколько ГБ памяти на свой сервер и сделать все это с помощью XSSF?   -  person Gagravarr    schedule 07.05.2014
comment
В порядке. Поскольку нам может потребоваться обработать n таких записей за один день, нас также беспокоит скорость. Это единственная причина, по которой мы отклонились от подхода XSSF к подходу SAX+XSSF для чтения Excel. При таком подходе мы могли видеть значительную разницу в скорости чтения данных Excel.   -  person Renjith    schedule 07.05.2014
comment
Как эта разница в скорости соотносится со временем программиста? Экономия 5 минут в день на обработке ценой нескольких человеко-недель времени программиста может не иметь общего смысла!   -  person Gagravarr    schedule 07.05.2014
comment
:), это правда. Но при чтении файла Excel (30 КБ) мы заметили разницу (XSSF (3 секунды) и SAX (700 мс)). Надеюсь, что это значительная разница, когда дело доходит до огромных файлов.   -  person Renjith    schedule 07.05.2014
comment
Мне это кажется медленным. 50 столбцов, 2000 строк, 420 КБ .xlsx загружается быстрее, чем на моем ноутбуке! Можете ли вы попробовать подход из раздела часто задаваемых вопросов об Apache POI Я думаю, что POI использует слишком много памяти! Что я могу сделать? и просто дважды проверьте, нет ли чего-то странного в ваших настройках и/или файле?   -  person Gagravarr    schedule 07.05.2014
comment
Это было сделано на рабочем столе моего офиса, что «действительно… МЕДЛЕННО». Но ссылка, которой вы поделились, кажется интересной. Я посмотрю на это и вернусь к вам.   -  person Renjith    schedule 07.05.2014
comment
@Renjith, ты нашел решение, которым можешь поделиться? Я сталкиваюсь с той же проблемой   -  person ardjavatake2selenium    schedule 20.02.2020
comment
@ardjavatake2selenium Извините, я не помню, что я действительно сделал, чтобы решить эту проблему. Возможно, я использовал какой-то писатель, чтобы написать дополнительный тег ‹cell›. То, как я читаю файл, подробно описано здесь: ?answertab=active#tab-top" title="эффективный способ поиска записей в файле Excel с использованием apache poi">stackoverflow.com/questions/24779440/   -  person Renjith    schedule 25.02.2020