رفع مشکل فایل CSV در نمایش به صورت ستونی و مشکل در نمایش حروف فارسی
ممکن است شما یک فایل csv را در اکسل باز کنید و ببینید که دادههای ستونهای مختلف فقط در ستون اول دیده میشود. مانند شکل زیر:

همانطور که میبینید، علاوه بر اینکه همه ستونها به ستون اول آمدهاند، حروف فارسی نیز صحیح دیده نمیشوند.
اینکه همه ستونها در یک ستون است به خاطر این است که متأسفانه در حالی که فایل csv مخفف Comma Separated Values است (یعنی بین مقادیر باید کاما باشد) اما برخی خروجیها بین مقادیر از ; (یعنی semicolon) استفاده میکنند و اکسل ستونها را با کامل جدا میکند. (یا برعکس، یعنی گاهی فایل csv شما درست است اما اکسل به خصوص اکسل 2007 طوری تنظیم شده که ; را به عنوان جداکننده میشناسد!).
اینکه حروف فارسی صحیح نیست به این خاطر است که خروجی گرفته شده UTF-8 گرفته نشده… اگر خروجی را خودتان گرفتهاید و با این مشکل مواجه هستید، این دو مقاله را ببینید:
چگونه از اکسل خروجی csv با پشتیبانی از فارسی بگیریم؟ (Export csv form unicode excel file)
چگونه با PHP از اطلاعات دیتابیس خروجی csv بگیریم که کاراکترها درست نمایش داده شوند؟
و اما روش رفع هر دو مشکل:
– اکسل را ببندید و آنرا از منوی Start باز کنید. (یعنی هیچ فایلی باز نباشد و یک سند خام ببینید)
– از منوی Data گزینه From Text را کلیک کنید.
– در این پنجره هم میتوانید یونیکد را اصلاح کنید و هم جداکننده را مشخص کنید. در گام اول، File Origin را Unicode (UTF-8) را انتخاب کنید تا ببینید که حروف فارسی درست شد:

– در مرحله بعد، جداکننده را Semicolon انتخاب کنید (و یا اگر کاما است، comma انتخاب کنید). خواهید دید که ستونبندی هم اصلاح میشود:

– نهایتاً روی Next کلیک کنید و اگر در مرحله آخر اگر میخواهید «نوع دادهی» هر ستون را تغییر دهید، روی هر ستون کلیک کنید و نوع آنرا مشخص کنید. (مثلاً اگر یک ستون، تاریخ است آن را انتخاب کنید و Date را انتخاب کنید)
– نهایتاً روی Finish کلیک کنید…