سؤال كيفية الحصول على Excel لتفسير الفاصلة كمحدد افتراضي في ملفات CSV؟


لدي عدد من ملفات .csv. بعضها محدد بفواصل ، وبعضها محدد بعلامة تبويب (ربما يجب أن يتم تسميته .tsv ...)

ال csv يتم ربط الامتداد مع Excel عند تثبيت Excel. ومع ذلك ، إذا قمت بفتح أحد هذه الملفات باستخدام برنامج Excel ، فسيتم التخلص من كل شيء في نفس العمود ولا يتم تفسير الفاصلة كمحدد.

يمكنني بدلاً من ملف -> استيراد ... ، حدد الملف ، واختر الطريقة الدقيقة لتفسير المحتويات (المحددات ، أنواع البيانات ، إلخ). لكن في معظم الوقت ، أريد فقط نظرة في الملف من خلال عرض جدول واضح. لا أريد معالجتها مع Excel.

هل هناك طريقة للحصول على Excel لتفسير محدد تلقائي وإظهار ملف CSV كجدول مناسب بمجرد فتحه؟ أحتاج إلى ذلك حتى أتمكن من استخدام برنامج Excel كمشاهد سريع لمثل هذه الملفات.

أظن أنه يجب أن يكون هناك طريقة ، وإلا لن يربط Excel نفسه بملفات CSV.


78
2018-06-11 11:04


الأصل


أفهم حقًا أن الإجابة المختارة تجيب عن سؤالك ، ولكن يجب إبراز السؤال الثاني لأنه يقدم حلاً شاملاً ، يعمل على مشاركة Acros عبر البريد الإلكتروني والشبكة وما إلى ذلك. - Rafareino


الأجوبة:


أثناء فتح ملفات CSV ، سيستخدم Excel إعدادًا إقليميًا للنظام يدعى List separator لتحديد المحدد الافتراضي الذي سيتم استخدامه.

سيفتح Microsoft Excel ملفات .csv ، ولكن بناءً على النظام   الإعدادات الإقليمية ، قد تتوقع فاصلة منقوطة كفاصل بدلاً من   فاصلة ، لأنه في بعض اللغات يتم استخدام الفاصلة كالعلامة العشرية   فاصل. (من عند ويكيبيديا)


على شبابيكيمكنك تغيير List separator الإعداد في Regional and Language Options كما هو محدد على موقع دعم Office :

تغيير الفاصل في ملف نصي CSV

  1. انقر فوق قائمة ابدأ في نظام التشغيل Windows.
  2. انقر فوق لوحة التحكم.
  3. افتح مربع الحوار الخيارات الإقليمية وخيارات اللغة.
  4. انقر فوق علامة التبويب خيارات إقليمية.
  5. انقر فوق تخصيص / إعدادات إضافية (Win10).
  6. اكتب فاصلاً جديدًا في مربع فاصل القائمة.
  7. انقر فوق موافق مرتين.

ملحوظة: هذا يعمل فقط إذا لم يتم تعيين الرمز العشري أيضا كعلامة (بالاقتران مع اقتباس ويكيبيديا أعلاه). إذا كان كذلك ، سيقوم Excel ليس استخدام الفاصلة مثل فاصل القائمة ، حتى إذا تم اختيارها. بالنسبة للعديد من المناطق غير التابعة للولايات المتحدة ، يكون الفاصلة هو الرمز العشري الافتراضي.

على نظام التشغيل Mac OS Xيبدو أن هذا الإعداد يستنتج من الفاصل العشري الإعداد (في اللغة والمنطقة جزء من تفضيلات النظام، اذهب إلى المتقدمة). إذا كان الفاصل العشري هي نقطة ثم فاصل CSV الافتراضي سيكون فاصلة ، ولكن إذا كان الفاصل العشري هي فاصلة ، ثم فاصل CSV الافتراضي سيكون فاصلة منقوطة.

كما ذكرت نفسك في التعليق ، هناك بديل لمستخدمي Mac لإلقاء نظرة سريعة على ملفات CSV هذه. انها البرنامج المساعد ل نظرة سريعة مسمي نظرة سريعة-CSV الذي يعالج اكتشاف الفواصل.


73
2018-06-11 11:07



شكرا ، هذا منطقي. أظن أنه لن يفسر علامات التبويب كمحددات افتراضيًا (وهو أمر منطقي أيضًا نظرًا لأن CSV يرمز إلى قيم مفصولة بفواصل ، ولكن الأشخاص يستخدمون علامات التبويب في CSV في الممارسة ويجب أن أتعامل مع ذلك). - Szabolcs
Szabolcs لن يحاول Excel الكشف عن المحدد أثناء فتح ملف CSV (باستخدام ملف> فتح أو ال مستكشف) ، سيستخدم فقط إعداد النظام. ومع ذلك سوف يتمكن من اكتشاف تلقائيا محدد (علامة التبويب ، الفاصلة ، الفاصلة المنقوطة أو الفضاء) أثناء استخدام استيراد خاصية. - zakinster
كانت إجابتك صالحة على OS X أيضا: إنها لا تزال النقطة العشرية / الفاصلة التي تسبب "مشكلة" (كما ذكرت في الإجابة). - Szabolcs
في وقت لاحق تحرير: الاعتذار! هذا لا يعمل! على ما يبدو يحتاج المرء إلى إعادة تشغيل البرنامج و / أو تسجيل الخروج / - مرة أخرى لتطبيق التغيير. أنا لا أعرف بالضبط متى ، ولكن بعد فترة وجيزة من تغييري هذا العمل فجأة. - mmo
في نظام التشغيل Mac OS X ، لا تنسَ إنهاء Excel بعد إجراء التغييرات. يبقى Excel مفتوحًا إذا قمت بإغلاق كافة الأوراق المفتوحة فقط. انقر فوق Excel> قم بإنهاء Excel أو قم فقط بالضغط على Command + Q ثم انتهيت. - Paulo Pedroso


إذا كنت لا ترغب في تعديل تنسيق الملف ، وكنت تستهدف Excel فقط ، فيمكنك استخدام خدعة Excel التالية لمساعدتك.

أضف سطرًا جديدًا في الجزء العلوي من الملف باستخدام النص "sep=," (بما في ذلك علامات الاقتباس) لكي يقوم Excel بفتح الملف باستخدام "،" كفاصل قائمة.

انها خدعة سهلة للغاية لتجنب تغيير الإعدادات الإقليمية ويندوز الخاص بك والحصول على نتيجة متسقة. لكنه محدد Excel.


76
2017-12-10 14:38



تأكد من استخدام -lyly- هذا في الملف ، وليس تعديله ، وإلا فقد تواجه أحد المشكلات التالية: theonemanitdepartment.wordpress.com/2014/12/15/... - Wouter
وحتى إذا كنت في حاجة إلى إعادة توزيع هذا الملف على الآخرين ، فمن الأفضل أن تتأكد من أن Excel قادر على فهم الملف ، بغض النظر عن التكوينات الخاصة به. دائمًا ما أستخدم csv لكي أتمكن من استخدام أي نظام تحكم في الإصدارات لمشاركته وتعاونه على هذه الملفات ، ولكنك عانيت من الفاصلة مقابل الفاصلة المنقوطة ، ودائمًا ما ثبّت الجميع على تغيير التكوينات الخاصة بهم ، لا أكثر. شكرا جزيلا! - Rafareino
وحده على رأس ماذا؟ - NateS


انت لا تحتاج الى اقتباسات حول sep=, - ما دام السطر الأول من الملف سيعمل ، على الأقل باستخدام Excel 2016.

اكتشفت أنه إذا كان الملف محددًا بعلامة التبويب ، sep=\t يعمل بشكل جيد ، مع وبدون علامات الاقتباس.


9
2018-06-02 12:27





عندما لا يكون الفاصل في الإعدادات الإقليمية فاصلة ولكن فاصلة منقوطة (فاصل اللغة الهولندية) ، قم بإعادة تسمية ملف CSV إلى ملف TXT. انقر بزر الماوس الأيمن فوق ملف TXT وحدد "فتح باستخدام" وحدد "Excel". في Excel ، حدد العمود الأول ، وحدد البيانات في الشريط ونص منفصل إلى أعمدة.

أو

قم بتثبيت LibreOffice وافتح ملف CSV باستخدام LibreOffice Calc.


1
2018-06-25 14:46





الإجابة المقبولة صحيحة لكنني شخص بصري. فيما يلي كل خطوة في شكل لقطة الشاشة لكيفية القيام بذلك في نظام التشغيل windows 10.

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here


1
2017-07-21 11:55



مفيد جدا! فقط تذكر (كما سبق ذكره في مكان ما أعلاه) List separator سيتم تجاهلها إذا تم استخدام نفس الرمز لـ Decimal symbol. سوف تجد في كثير من الأحيان , كرمز عشري ، لذلك تأكد من تغييره إلى شيء آخر (على سبيل المثال ، .) عند الإعداد List separator إلى ,. - Dirk


تأكد من فحص ملف CSV في محرر بسيط مثل Notepad للتحقق من تنسيقه بشكل صحيح.

لقد أضفت هذه الإجابة بعد أن قمت بحل خطأ غبي حيث لم يتم فتح ملفات CSV التي أنشأتها باستخدام VB مع أعمدة منفصلة في Excel. اكتشفت أن الطريقة التي كتبت بها الخطوط ملفوفة بكل سطر بعلامات اقتباس. أخفى Excel علامات الاقتباس وأظهر السطر بأكمله في العمود A ، مما يجعله يبدو كما لو أنه تجاهل فاصلات فواصل.


0
2018-06-12 17:22





أفضل طريقة هي حفظه في ملف نصي بامتداد csv

Sub ExportToCSV()
    Dim i, j As Integer
    Dim Name  As String

    Dim pathfile As String


    Dim fs As Object
        Dim stream As Object

        Set fs = CreateObject("Scripting.FileSystemObject")
    On Error GoTo fileexists

    i = 15
    Name = Format(Now(), "ddmmyyHHmmss")
    pathfile = "D:\1\" & Name & ".csv"

    Set stream = fs.CreateTextFile(pathfile, False, True)

fileexists:

    If Err.Number = 58 Then
        MsgBox "File already Exists"
        'Your code here
        Return
    End If
    On Error GoTo 0

    j = 1
    Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)

        stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))

        j = j + 1
        i = i + 1
    Loop

stream.Close

End Sub

0
2017-07-31 06:30