خواندن کارآمد فایلهای اکسل بزرگ (بیش از ۱ میلیون ردیف) با استفاده از API متنباز Sjxlsx جاوا
این مقاله راهحلی برای جلوگیری از خطای «کمبود حافظه» هنگام خواندن فایلهای اکسل حجیم با استفاده از کتابخانه sjxlsx ارائه میدهد. این کتابخانه متنباز با مصرف حافظه کمتر از ۱ گیگابایت، عملکرد بهتری نسبت به Apache POI دارد.
مدیریت فایلهای اکسل حجیم در جاوا
خواندن فایلهای اکسل با بیش از ۱ میلیون ردیف و ۱۰۰ ستون یکی از چالشهای رایج توسعهدهندگان است که معمولاً با خطای “out of memory” مواجه میشوند. کتابخانههای رایج مانند Apache POI در مواجهه با چنین فایلهایی با مصرف بالای حافظه (۹۴٪) و خطای heap space روبرو میشوند.
- sjxlsx یک API متنباز جاوا است که برای خواندن فایلهای حجیم اکسل طراحی شده است
- این کتابخانه از دو حالت classic (بارگذاری کامل) و stream (خواندن تدریجی) پشتیبانی میکند
- از تکنولوژی STAX برای پردازش XML+zip فایلهای XLSX استفاده میکند
- مصرف حافظه آن به کمتر از ۱ گیگابایت محدود میشود
- قابلیت نوشتن فایلهای اکسل و فرمتدهی پیشرفته دادهها را نیز دارد
“مصرف حافظه و سرعت از اهداف اصلی این API هستند”
این کتابخانه برای محیطهای ابری با منابع محدود (۴ گیگابایت RAM) یا سرورهای on-premise با بار کاری زیاد مناسب است و بدون نیاز به خرید لایسنس سومطرففه، مشکل خواندن فایلهای حجیم را حل میکند.
