Редактиране на голям 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
Не можете ли просто да поемете по лесния път, да поставите още няколко GB памет във вашия сървър и да направите всичко това с 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 kb) забелязахме разлика от (XSSF (3 секунди) & SAX (700 ms)). Надяваме се, че това е значителна разлика, когато става въпрос за огромни файлове.   -  person Renjith    schedule 07.05.2014
comment
Това ми се струва бавно. 50 колони, 2000 реда, 420kb .xlsx зарежда по-бързо от това на моя лаптоп! Можете ли да опитате подхода от запис с ЧЗВ за POI на Apache Мисля, че 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›. Начинът, по който чета файла, е описан подробно тук: stackoverflow.com/questions/24779440/   -  person Renjith    schedule 25.02.2020