aspose.info
FA

فرمت فایل CSV

به‌روزرسانی

فایل CSV چیست؟

فایل‌های با پسوند csv. (مقادیر جدا شده با کاما) فایل‌های متنی ساده را نشان می‌دهند که حاوی رکوردهایی از داده‌ها با مقادیر جدا شده با کاما هستند. هر خط در یک فایل CSV یک رکورد جدید از مجموعه رکوردهای موجود در فایل است. چنین فایل هایی زمانی ایجاد می شوند که انتقال داده ها از یک سیستم ذخیره سازی به سیستم دیگر در نظر گرفته شده باشد. از آنجایی که همه برنامه ها می توانند رکوردهای جدا شده با کاما را تشخیص دهند، وارد کردن چنین فایل های داده ای به پایگاه داده بسیار راحت انجام می شود. تقریباً همه برنامه های صفحه گسترده مانند Microsoft Excel یا OpenOffice Calc می توانند CSV را بدون تلاش زیاد وارد کنند. داده های وارد شده از چنین فایل هایی در سلول های یک صفحه گسترده برای نمایش به کاربر مرتب می شوند.

تاریخچه مختصر

در زیر برخی از حقایق سریع در مورد منشاء و تاریخچه فرمت فایل CSV آورده شده است.

  • 1972 - کامپایلر IBM Fortran (سطح H گسترش یافته) آنها را تحت OS/360 پشتیبانی کرد

  • 1978 - ورودی/خروجی هدایت‌شده لیست توسط FORTRAN 77 پشتیبانی شد که از کاما و فاصله برای جداکننده‌ها استفاده می‌کرد.

  • 2005 - CSV با RFC4180 به عنوان یک نوع محتوای MIME استاندارد شد.

  • 2013 - کمبودهای RFC4180 با توصیه W3C برطرف شد

  • 2015 - W3C اولین پیش نویس توصیه ها را برای استانداردهای فراداده CSV ارائه کرد که به عنوان توصیه در دسامبر 2015 آغاز شد.

تبدیل فایل های CSV

با استفاده از برنامه هایی که می توانند این فایل ها را باز کنند، می توان فایل های CSV را به چندین فرمت فایل مختلف تبدیل کرد. برای مثال، مایکروسافت اکسل می‌تواند داده‌ها را از فرمت فایل CSV وارد کرده و در قالب‌های فایل XLS، XLSX، PDF، TXT، XML و HTML ذخیره کند. به طور مشابه، سایر سرویس‌های دسکتاپ و همچنین آنلاین، قابلیت صادر کردن فایل‌های CSV به HTML، ODS و RTF را فراهم می‌کنند.

فرمت فایل CSV

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

  • هر رکورد در یک خط جداگانه قرار دارد که با یک شکست خط (CRLF) مشخص شده است. مثلا:

    • aaa,bbb,ccc CRLF
    • zzz، yyyy، xxx CRLF
  • آخرین رکورد در فایل ممکن است دارای یک شکست خط پایان باشد یا نباشد. مثلا:

    • aaa,bbb,ccc CRLF
    • zzz، yyyy، xxx
  • ممکن است یک خط سرصفحه اختیاری به عنوان خط اول فایل با همان قالب خطوط رکورد معمولی ظاهر شود. این سرصفحه حاوی نام‌های مربوط به فیلدهای موجود در فایل است و باید دارای همان تعداد فیلدهایی باشد که رکوردهای بقیه فایل وجود دارد (وجود یا عدم وجود خط سرصفحه باید از طریق پارامتر اختیاری “header” این نشان داده شود. نوع MIME). مثلا:

    • فیلد_نام، نام_فیلد، نام_فیلد CRLF
    • aaa,bbb,ccc CRLF
    • zzz، yyyy، xxx CRLF
  • در هدر و هر رکورد، ممکن است یک یا چند فیلد وجود داشته باشد که با کاما از هم جدا شده اند. هر خط باید دارای همان تعداد فیلد در سراسر فایل باشد. فضاها بخشی از یک میدان محسوب می شوند و نباید آنها را نادیده گرفت. آخرین فیلد در رکورد نباید با کاما دنبال شود. مثلا:

    • aaa,bbb,ccc
  • هر فیلد ممکن است در دو گیومه قرار گیرد یا نباشد (اما برخی از برنامه ها مانند مایکروسافت اکسل به هیچ وجه از دو نقل قول استفاده نمی کنند). اگر فیلدها با گیومه های دوتایی احاطه نشده باشند، ممکن است نقل قول های دوگانه در داخل فیلدها ظاهر نشوند. مثلا:\

    • aaa، bbb، ccc CRLF
    • zzz، yyyy، xxx
  • فیلدهای حاوی شکست خط (CRLF)، گیومه های دوتایی و کاما باید در دو گیومه محصور شوند. مثلا:

    • aaa، b CRLF
    • bb، ccc CRLF
    • zzz، yyyy، xxx
  • اگر از دو نقل قول برای محصور کردن فیلدها استفاده می شود، باید از یک نقل قول دوگانه که در داخل یک فیلد ظاهر می شود، قبل از آن با یک نقل قول مضاعف دیگر فرار کرد. مثلا:

    • aaa، bbb، ccc

با این حال، در پرتو استفاده مدرن، جداکننده فقط به کاما محدود نمی شود و می تواند نقطه ویرگول، تب یا فاصله نیز باشد. برنامه هایی مانند مایکروسافت اکسل گزینه ای را برای تعیین کاراکتر جداکننده برای وارد کردن رکوردها از یک فایل CSV ارائه می دهند.

منابع

همچنین ببینید