تفاوت تبدیل XLSX به JSON با تبدیل به CSV
تبدیل یک فایل اکسل به JSON با تبدیل آن به CSV یکسان نیست. فایل XLSX در حقیقت یک بایگانی فشرده از چندین فایل XML است که میتواند شامل چندین برگه، انواع سلول (متن، عدد، تاریخ، بولی)، فرمولها و قالببندی غنی باشد. در مقابل، JSON یک قالب تایپدار و قابل تودرتو است که از انواع دادههای شیء، آرایه، عدد، بولی و null پشتیبانی میکند. مهمترین تفاوت در اینجاست: وقتی یک فایل XLSX را به JSON تبدیل میکنید، مقادیر عددی و بولی سلولها به عنوان مقادیر تایپدار JSON حفظ میشوند (نه اینکه مجبور شوند به صورت رشتههای نقلقولدار درآیند). برای مثال، یک سلول حاوی عدد ۱۰۲۴ در خروجی JSON به صورت 1024 (بدون نقلقول) ظاهر میشود، در حالی که در CSV همه چیز به رشته تبدیل میگردد. همین موضوع برای مقادیر بولی (True/False) نیز صادق است.
اما این تبدیل قالببندی سلول، رنگها، حاشیهها و فرمولها را حفظ نمیکند. فرمولها محاسبه نمیشوند – فقط آخرین مقدار ذخیرهشده در سلول (Visible Value) استخراج میشود. برخلاف CSV که هر ردیف را به یک خط متنی ساده تبدیل میکند، JSON میتواند ساختار جدولی را به صورت آرایهای از اشیاء با کلیدهای نام ستون نمایش دهد. اما نکته مهم این است که جدول مبدأ همواره تخت است؛ هیچ سلسلهمراتبی در خود جدول XLSX وجود ندارد، بنابراین JSON تودرتو به طور خودکار ایجاد نمیشود. اگر به ساختارهای تودرتو نیاز دارید، باید بعد از تبدیل، دستی آنها را بازسازی کنید.
نقشهبرداری نوع سلول: اعداد، بولیها و تاریخها در JSON
هسته این ابزار، تشخیص نوع داده سلول در فایل XLSX و نگاشت آن به معادل JSON است. سه نوع سلول رایج که در این تبدیل رفتار متفاوتی دارند عبارتند از:
- اعداد: سلولهای عددی (مثل ۱۲۳۴، ۳.۱۴) به صورت اعداد JSON (
number) خروجی داده میشوند. اگر عدد به صورت متن ذخیره شده باشد (مثلاً به دلیل قالببندی متن)، به عنوان رشته باقی میماند. - بولیها: سلولهایی که مقدار
TRUEیاFALSEدارند، به صورتtrueوfalseدر JSON نشان داده میشوند (بدون نقلقول). - تاریخها: تاریخها در Excel به صورت عدد اعشاری (تعداد روز از ۱ ژانویه ۱۹۰۰) ذخیره میشوند. ابزار تلاش میکند این اعداد را به رشتههای قابل خواندن تبدیل کند، اما ممکن است بسته به تنظیمات منطقهای فایل مبدأ، نتیجه متفاوت باشد. معمولاً تاریخ به صورت رشته ISO (مثلاً "2023-08-15T00:00:00.000Z") یا فرمت محلی ذخیره میشود.
سلولهای خالی (Null) در JSON به null تبدیل میشوند. سلولهای حاوی متن ساده، رشته میمانند. هیچ تودرتویی از روی دادههای اکسل به صورت خودکار ایجاد نمیشود – JSON خروجی یک آرایه تخت از اشیاء است که هر شیء نماینده یک ردیف از برگه اول است.
چرا فقط اولین برگه استفاده میشود؟
فایل XLSX میتواند شامل چندین برگه (Sheet) باشد. این ابزار تنها دادههای برگه اول (اولین برگه در ترتیب نمایش) را استخراج میکند. دلیل آن سادگی و کارایی است: اکثر کاربران فایلهایی با یک برگه داده اصلی دارند، و پشتیبانی از چند برگه نیاز به انتخاب برگه توسط کاربر و مدیریت جداگانه خروجی دارد که پیچیدگی اضافه میکند. اگر به دادههای برگههای دیگر نیاز دارید، باید هر برگه را جداگانه به یک فایل XLSX جدید کپی کنید و تبدیل را تکرار کنید. یا از ابزاری استفاده کنید که از چند برگه پشتیبانی میکند.
این محدودیت عمدی است تا تبدیل سریع و قابل پیشبینی باقی بماند. برای کاربران معمولی که یک جدول در برگه اول دارند، این رویکرد کاملاً کافی است و ابزار را ساده نگه میدارد.
پردازش سمت کلاینت: حریم خصوصی و سرعت
برخلاف بسیاری از ابزارهای آنلاین تبدیل فایل که فایل شما را به سرور خود میفرستند، این صفحه تمام عملیات تبدیل را در مرورگر شما و با استفاده از جاوااسکریپت انجام میدهد. مزیت اصلی: هیچ دادهای به هیچ سروری ارسال نمیشود. فایل XLSX شما در حافظه مرورگر بارگذاری میشود، تجزیه میشود و خروجی JSON تولید میشود – همه چیز در دستگاه شما انجام میگیرد. این ویژگی برای افرادی که به حریم خصوصی دادههای خود اهمیت میدهند (مثلاً فایلهای حاوی اطلاعات مشتریان، حقوق و دستمزد، یا دادههای محرمانه) بسیار ارزشمند است.
سرعت تبدیل نیز به قدرت پردازش دستگاه شما و اندازه فایل بستگی دارد. فایلهای کوچک (چند هزار ردیف) در کسری از ثانیه تبدیل میشوند. اما محدودیت اعمال میشود: اگر فایل از حداکثر حجم مجاز بزرگتر باشد، پیام «این فایل خیلی بزرگ است. از فایلی با حجم کمتر از ‹max› استفاده کنید.» نمایش داده میشود. همچنین محدودیت تعداد سطر و ستون وجود دارد – اگر جدول بیش از ‹max› سطر یا ‹max› ستون داشته باشد، تبدیل انجام نمیشود. این محدودیتها از قفل شدن مرورگر و مصرف بیش از حد حافظه جلوگیری میکنند.
خطاها و محدودیتهای رایج
چندین خطای خاص در این ابزار تعریف شده است که کاربران ممکن است با آنها مواجه شوند:
- «این فایل اکسل باز نمیشود.»: وقتی فایل XLSX خراب است یا قابل تجزیه نیست.
- «این فایل هیچ ردیف جدولی ندارد.»: اگر برگه اول کاملاً خالی باشد یا فقط هدر داشته باشد.
- «خیلی بزرگ است.»: وقتی حجم فایل از حد مجاز فراتر رود.
- «تعداد سطرها/ستونها بیش از حد مجاز است.»: محدودیت تعداد سطر/ستون.
- «یک فایل CSV، JSON یا XLSX انتخاب کنید.»: اگر کاربر فایلی با پسوند دیگر انتخاب کند.
- «تبدیل این فایل ممکن نیست.»: خطای عمومی.
- «تبدیل لغو شد.»: اگر کاربر عملیات را متوقف کند.
- «این تبدیل خیلی طول میکشد. فایل کوچکتری امتحان کنید.»: تایماوت در پردازش.
همچنین باید به چند نکته عملی توجه داشت:
- سلولهای ادغامشده (Merged Cells) باعث ایجاد ردیفهای خالی یا داده تکراری میشوند. این ابزار هر سلول را مستقل میخواند – در سلولهای ادغامشده، فقط سلول بالا-چپ مقدار دارد و بقیه خالی میمانند.
- ستونهای مخفی حذف نمیشوند؛ تمام ستونهای برگه صرف نظر از وضعیت نمایش، در خروجی حضور دارند.
- اگر ردیف اول به عنوان هدر در نظر گرفته شود (که اینطور است)، مقادیر ردیف اول به عنوان کلیدهای JSON استفاده میشوند. اگر هدرها یکسان باشند، کلیدهای تکراری در JSON ایجاد میشود که ممکن است باعث نادیده گرفته شدن برخی مقادیر در بسیاری از کتابخانههای JSON شود.
این ابزار برای چه کسانی مفید است؟
- توسعهدهندگان وب که اطلاعات محصولات را در یک صفحه گسترده اکسل دریافت میکنند و نیاز به JSON برای API یا فرانتاند دارند.
- تحلیلگران داده که میخواهند یک گزارش فصلی (XLSX) را سریعاً به فرمت ماشینخوان JSON برای پردازش بیشتر تبدیل کنند.
- تیمهایی که با شرکای خارجی کار میکنند که JSON را به اکسل ترجیح میدهند، و نیاز به تبدیل یکباره بدون نصب نرمافزار دارند.
- هر کسی که به حریم خصوصی اهمیت میدهد و میخواهد فایل اکسل خود را بدون آپلود به سرویس ابری تبدیل کند.
این ابزار ساده و متمرکز است – نه هزاران گزینه، نه نیاز به حساب کاربری. فقط یک فایل را انتخاب کنید، خروجی JSON را دریافت کنید.
پرسشهای متداول (FAQ)
۱. آیا فرمولها در خروجی محاسبه میشوند؟
خیر. ابزار فقط مقدار ذخیرهشده سلول را میخواند. اگر فایل با فرمول باز نشود و ذخیره مجدد نشود، مقدار محاسبهشده آخرین ذخیره است. اگر فایل تازه ایجاد شده باشد و فرمولها محاسبه نشده باشند، ممکن است خطا یا مقدار صفر برگردد.
۲. چگونه میتوانم دادههای برگه دوم را تبدیل کنم؟
این ابزار فقط برگه اول را میخواند. برای برگههای دیگر، محتوای آن برگه را در یک فایل XLSX جدید کپی کرده و سپس تبدیل را انجام دهید. یا از ابزارهای حرفهتری استفاده کنید که از چند برگه پشتیبانی میکنند.
۳. چه اتفاقی برای سلولهای خالی میافتد؟
سلول خالی در JSON به صورت null (نه رشته خالی) نمایش داده میشود. این رفتار برای تمایز بین مقدار وجوددار و سلول خالی مفید است.
۴. آیا میتوانم فایل CSV را نیز در این ابزار تبدیل کنم؟
خیر. این صفحه فقط برای تبدیل XLSX به JSON طراحی شده است. گزینه ورودی فقط فایل XLSX را میپذیرد. (البته صفحههای دیگری در سایت وجود دارند که CSV را میپذیرند.)
۵. محدودیت اندازه فایل چقدر است؟
محدودیت دقیق در صفحه مشخص نیست، اما اگر فایل از حد مجاز بزرگتر باشد پیام خطا نشان داده میشود. برای فایلهای حجیم، بهتر است ابتدا دادههای غیرضروری را حذف کنید یا فایل را به چند بخش تقسیم کنید.
۶. آیا خروجی JSON شامل هدرها میشود؟
بله. ردیف اول برگه به عنوان نام کلیدهای JSON در نظر گرفته میشود. اگر ردیف اول داده نباشد، کلیدها به صورت پیشفرض (مثلاً "Column1", "Column2") تولید میشوند.