چرا فایل XLSX به CSV تبدیل میشود؟
هر کاربری که با دادههای جدولی سر و کار دارد، دیر یا زود به فایل Excel با پسوند XLSX برمیخورد. این فرمت، یک بسته فشرده از فایلهای XML است که اطلاعات پیچیدهای مانند چندین برگه، فرمولها، انواع داده (عدد، تاریخ، بولی)، قالببندی سلولها، رنگها، فونتها و حتی سلولهای ادغامشده را در خود نگه میدارد. اما بسیاری از سیستمها – از پایگاههای داده گرفته تا اسکریپتهای تحلیل داده و نرمافزارهای قدیمی – تنها با فایلهای متنی ساده کار میکنند. آنها به CSV (مقادیر جدا شده با کاما) نیاز دارند: یک فایل متنی که هر خط آن یک ردیف از جدول است و ستونها با یک کاراکتر جداکننده مشخص از هم تفکیک میشوند. ابزار تبدیل XLSX به CSV این شکاف را پر میکند: شما فایل Excel را وارد میکنید و یک فایل CSV تمیز دریافت میکنید. اما مهمترین نکته – و چیزی که این صفحه را از مرسومترین ابزارها متمایز میکند – این است که تبدیل به صورت سمت کلاینت انجام میشود. فایل شما هرگز از دستگاه شما خارج نمیشود. نه به سروری ارسال میشود، نه در جایی ذخیره میگردد. تمامی پردازش در مرورگر شما صورت میگیرد. این یعنی دادههای حساس مالی، شخصی یا محرمانه در امنیت کامل باقی میمانند.
تفاوتهای بنیادین: XLSX در برابر CSV
XLSX یک فرمت دودویی و ساختاریافته است که میتواند یک «کارنامه کامل» را در خود جای دهد. در مقابل، CSV یک قالب متنی حداقلی است. این تفاوت، ماهیت تبدیل را «کاهنده» (lossy) میکند. هر چیزی که در CSV جایی ندارد، ناگزیر حذف میشود. بیایید دقیق ببینیم چه چیزی باقی میماند و چه چیزی از بین میرود:
| ویژگی | XLSX (ورودی) | CSV (خروجی) |
|---|---|---|
| تعداد برگهها | چندین برگه (worksheet) | فقط یک برگه (اولین برگه) |
| فرمولها | محاسبهشده یا ذخیرهشده به صورت محاسبه | فقط مقدار نهایی |
| نوع داده سلول | عدد، تاریخ، درصد، ارز، بولی | انواع مقادیر حفظ میشوند |
| قالببندی (رنگ، فونت، حاشیه، ادغام) | بله | خیر (به کلی حذف میشود) |
| سلولهای خالی | مجاز | با جداکننده خالی نشان داده میشوند |
| دادههای سلسلهمراتبی (مثلاً تو در تو) | میتواند در یک سلول باشد | باید از قبل مسطح شود |
| حجم فایل | فشرده (معمولاً کوچکتر) | متن باز (بسته به داده) |
یک نکته فنی: ابزار ما فرمولها را محاسبه نمیکند. این ابزار مقدار آخرین مقدار ذخیرهشده در سلول را میخواند. اگر فایل XLSX حاوی فرمولهایی باشد که هنوز محاسبه نشدهاند (مثلاً با تنظیمات manual calculation)، آن فرمولها به صورت متن فرمول ذخیره میشوند و در CSV به همان صورت ظاهر میشوند – که ممکن است اشتباه تفسیر شود.
چه چیزی از دست میرود؟
بگذارید با جزئیات بیشتری توضیح دهیم چه چیزهایی در این تبدیل ناگزیر حذف میشوند:
- برگههای اضافی: ابزار تنها اولین برگه (worksheet) را پردازش میکند. اگر فایل شما چندین برگه دارد، باید آنها را پیش از آپلود به صورت دستی ادغام کنید یا هر برگه را جداگانه تبدیل کنید.
- فرمولها: به جای فرمول SUM، مقدار عددی آن نوشته میشود. اگر فایل قرار بود بهروزرسانی خودکار شود، این قابلیت از بین میرود.
- انواع داده: ابزار انواع سلولها را حفظ میکند. یک سلول با مقدار
۴/۱/۲۰۲۴در CSV به صورت۴۵۲۴۲(شماره سریال تاریخ) یا به صورت متن۴/۱/۲۰۲۴ظاهر نمیشود، بلکه به صورت متن ISO (مثلاً2023-03-15T00:00:00.000Z) نوشته میشود. - صفرهای آغازین: اگر یک سلول XLSX حاوی عددی مانند
۰۰۱۲۳باشد، Excel آن را به صورت عدد (بدون صفر) ذخیره میکند مگر اینکه صریحاً به صورت متن قالببندی شده باشد. در نتیجه CSV۱۲۳را نشان میدهد. اگر نیاز به حفظ صفر دارید، باید مطمئن شوید که سلول در XLSX به صورت متن ذخیره شده باشد (مثلاً با افزودن یک آپستروف قبل از عدد یا قالببندی سلول به عنوان متن). - سلولهای ادغامشده: ادغام سلولها در XLSX یک ویژگی بصری است. در CSV، هر سلول از ردیف اول جداگانه ظاهر میشود و سلولهای باقیمانده خالی میمانند. نتیجه اغلب یک جدول نامتقارن است.
این فهرست نشان میدهد که تبدیل XLSX به CSV یک عملیات «بستهبندی مجدد» ساده نیست، بلکه یک تصمیم ساختاری است. شما باید پیش از تبدیل بدانید چه چیزی قابل نگهداری نیست و برای آن برنامهریزی کنید.
مشکلات مرزی: کاما، خط جدید و صفرهای آغازین
مهمترین دامهایی که در CSV با آن روبرو میشوید، مربوط به دادههایی است که با جداکننده انتخابی یا ساختار خطی فایل تداخل دارند:
- کاما درون داده: اگر جداکننده را کاما انتخاب کنید، هر رشتهای که خود شامل کاما باشد باید درون گیومه (") قرار گیرد. ابزار این کار را به صورت خودکار انجام میدهد. اما اگر داده شامل گیومه نیز باشد، باید با دو گیومه متوالی escape شود (روش استاندارد RFC 4180). ابزار ما این escape را نیز انجام میدهد.
- خط جدید درون یک سلول: XLSX به شما اجازه میدهد در یک سلول چند خط بنویسید (Alt+Enter). در CSV، یک خط جدید درون یک سلول باید با گیومه محافظت شود. در غیر این صورت، خط جدید به عنوان یک ردیف جدید تفسیر میشود و جدول شما خراب میشود. ابزار ما سلولهای حاوی خط جدید را به صورت خودکار در گیومه میگذارد.
- صفرهای آغازین: همانطور که گفته شد، عدد
۰۱۲۳۴در CSV به۱۲۳۴تبدیل میشود مگر اینکه در XLSX به صورت متن ذخیره شده باشد. اگر به صفرهای آغازین نیاز دارید (مثلاً برای کد پستی، شماره حساب)، پیش از آپلود سلولهای مربوطه را در Excel به عنوان متن قالببندی کنید. - تاریخها: Excel ممکن است تاریخ را به صورت شماره سریال ذخیره کند. ابزار ما این شماره را به صورت متن ISO (برای مثال
2023-03-15T00:00:00.000Z) نمایش میدهد. برای جلوگیری از این مشکل، تاریخها را در Excel به صورت متن ذخیره کنید (مثلاً با تابع TEXT یا قالببندی سلول به عنوان متن).
تمام این موارد در ابزار ما مدیریت میشود، اما شما مسئول بررسی خروجی هستید. ابزار خطایی نمیدهد مگر اینکه یکی از شرایط زیر پیش بیاید:
- عدم انتخاب فایل: «Choose one file first.»
- انتخاب فایل با فرمت نامعتبر: «Choose a CSV, JSON or XLSX file.»
- فایل بیش از حد بزرگ: «This file is too large. Use a file under 8 MB.»
- فایل Excel خراب یا غیر قابل باز شدن: «This Excel file could not be opened.»
- فایل بدون سطر: «This file has no table rows.»
- بیش از حد مجاز سطر یا ستون: «This table has more than 10,000 rows.» یا «This table has more than 200 columns.»
- انصراف توسط کاربر: «Conversion cancelled.»
- زمانبر شدن بیش از حد: «This conversion is taking too long. Try a smaller file.»
انتخاب جداکننده مناسب
سه گزینه جداکننده در اختیار دارید: کاما (,)، نقطهویرگول (;) و تب (\t). انتخاب صحیح بستگی به مقصد فایل CSV دارد:
- کاما: استاندارد عمومی و بیشترین سازگاری را با نرمافزارهای رایج (Excel، Google Sheets، پایگاههای داده) دارد. اما اگر دادههای شما نیز حاوی کاما هستند، بهتر است از نقطهویرگول یا تب استفاده کنید.
- نقطهویرگول: در برخی مناطق (مانند اروپا) به عنوان جداکننده پیشفرض در محلیسازی Excel استفاده میشود. اگر فایل شما حاوی کاماهای زیاد است، این گزینه مناسب است.
- تب: برای دادههایی که هم کاما و هم نقطهویرگول در آنها به وفور یافت میشود، انتخاب ایدهآلی است. همچنین در بسیاری از ابزارهای خط فرمان و سیستمهای قدیمی رایج است.
هیچ قانون یکسانی برای انتخاب وجود ندارد. بهتر است بدانید سیستم مقصد چه جداکنندهای را میپذیرد. اگر مطمئن نیستید، کاما را انتخاب کنید – این رایجترین گزینه است.
آمادهسازی دادههای سلسلهمراتبی (مسطح کردن)
یکی از دامهای پنهان، دادههای سلسلهمراتبی است. XLSX میتواند در یک سلول یک شیء تو در تو (مثلاً یک لیست جدا شده با خط جدید) داشته باشد. CSV چنین ساختاری را نمیشناسد. ابزار ما تلاشی برای flatten کردن نمیکند. بنابراین شما باید پیش از آپلود:
- دادههای تو در تو را به ستونهای مجزا تبدیل کنید.
- از یک رشته متنی با جداکننده داخلی استفاده کنید (که خود ممکن است با جداکننده CSV تداخل کند).
- هر سلول با یک مقدار واحد پر شود.
مثال: فرض کنید یک سلول شامل آدرس کامل به صورت خیابان، شهر، استان است. در CSV، اگر این یک ستون باشد، جستجو و فیلتر کردن آن سخت میشود. بهتر است سه ستون جداگانه برای خیابان، شهر و استان ایجاد کنید.
مزیت پردازش سمت کلاینت
بسیاری از ابزارهای آنلاین، فایل شما را به سرور خود ارسال کرده، تبدیل را در آنجا انجام میدهند و سپس نتیجه را بازمیگردانند. این یعنی داده شما در شبکه جابهجا میشود و ممکن است در لاگهای سرور باقی بماند. ابزار ما فایل را در مرورگر شما باز میکند. هیچ دادهای به جایی ارسال نمیشود. مزایا:
- حریم خصوصی کامل: دادههای مالی، پزشکی یا محرمانه هرگز از دستگاه شما خارج نمیشوند.
- بدون محدودیت حجم فایل از سمت سرور (تنها محدودیت مرورگر و حافظه RAM سیستم شماست).
- آفلاین: اگر قبلاً صفحه بارگذاری شده باشد، میتوانید بدون اتصال اینترنت از آن استفاده کنید (اگر داده در حافظه کش مرورگر ذخیره شده باشد). البته اولین بار برای بارگذاری صفحه به اینترنت نیاز دارید.
تنها محدودیت عمده، حافظه مرورگر است. فایلهای بزرگتر از 8 مگابایت، بیش از 10,000 سطر یا 200 ستون ممکن است باعث کندی یا خطای "این تبدیل زمان زیادی میبرد. یک فایل کوچکتر را امتحان کنید." شوند.
سوالات متداول (FAQ)
سوال ۱: آیا میتوانم چندین برگه را به یک CSV تبدیل کنم؟
خیر. ابزار تنها اولین برگه را پردازش میکند. برای برگههای دیگر، باید آنها را به صورت جداگانه در Excel ذخیره کرده و هر کدام را جداگانه آپلود کنید، یا پیش از آپلود برگهها را در یک برگه ادغام کنید.
سوال ۲: اگر سلولی حاوی تاریخ باشد، چه اتفاقی میافتد؟
تاریخ به صورت متن ISO نمایش داده میشود (مثلاً 2023-03-15T00:00:00.000Z). برای جلوگیری از این، سلولهای تاریخ را در Excel با قالببندی "متن" ذخیره کنید.
سوال ۳: چرا صفرهای آغازین ناپدید میشوند؟
چون Excel اعداد را بدون صفر ذخیره میکند. برای نگهداشتن صفرها، سلول را در Excel به صورت متن قالببندی کنید (Home > Number > Text) و سپس دوباره عدد را تایپ کنید.
سوال ۴: آیا فایل CSV حاصل را میتوان در Excel باز کرد؟
بله. اگر جداکننده کاما را انتخاب کرده باشید، Excel معمولاً به طور خودکار آن را تشخیص میدهد. در غیر این صورت، هنگام باز کردن از Data > From Text/CSV استفاده کنید.
سوال ۵: حداکثر اندازه فایل چقدر است؟
حداکثر اندازه فایل ۸ مگابایت است. اگر فایل شما بزرگتر باشد، ابزار پیغام خطای "این فایل خیلی بزرگ است. از فایلی با حجم کمتر از ‹max› استفاده کنید." را نمایش میدهد.
سوال ۶: اگر سلولها ادغام شده باشند چه؟
سلولهای ادغامشده به صورت سلول خالی در ردیفهای اضافی ظاهر میشوند. برای جلوگیری از این، پیش از آپلود ادغام سلولها را لغو کنید و سلولها را به صورت جداگانه پر کنید.