Laravel-excel: [سؤال] تم إرجاع قيمة الخلية على أنها خاطئة

تم إنشاؤها على ٢٧ سبتمبر ٢٠١٧  ·  3تعليقات  ·  مصدر: Maatwebsite/Laravel-Excel

أنا أستخدم Laravel Excel 2.1. Laravel 5.4.3.

أحاول قراءة ملف CSV. المشكلة هي أن بعض الخلايا يتم تحويلها إلى false عندما يجب أن تكون سلاسل.

هذا مثال للصف الأول من الملف: 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80 . هو في الواقع \ufffd .

المشكلة تتعلق فقط بالصفوف الثلاثة الأخيرة. عندما قرأت الملف:

Excel::filter('chunk')->load($file_path)->chunk(250, function($sheets_collection)
{
    foreach ($sheets_collection as $current_sheet) {
        foreach ($current_sheet as $current_row) {
            // process $current_row
        }
    }
}, 'UTF-8');

يحتوي $ current_row على القيم الصحيحة لكل شيء ، باستثناء الخلايا الثلاث الأخيرة التي تحتوي فقط على false . بدلاً من الخطأ ، أود الحصول على سلاسل.

ومع ذلك ، إذا قمت بإزالة كل فقط من الصف الأول ، فإنه يعمل بشكل جيد ليس فقط للصف الأول ولكن أيضًا للباقي!
يُقرأ الصف الأول على أنه المصفوفة التالية: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8] .
يُقرأ الصف الثاني على أنه المصفوفة التالية: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"] . تتم قراءة جميع الصفوف اللاحقة بطريقة مماثلة للصف الثاني.
لا يمكنني تعقيم الصف الأول لكل ملف أخطط لمعالجته ، فهل هناك طريقة لضبط Laravel-Excel لجلب القيمة من الخلية بشكل صحيح كسلسلة؟

التعليق الأكثر فائدة

@ marijnz0r شكرا جزيلا لك!
اعتدت أن أواجه مشكلة مثل هذه مع الحرف °.
لحل مشكلتي فعلت ذلك:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');

ال 3 كومينتر

تظهر المشكلة نفسها بالنسبة لي عند استخدام أحرف مثل و é . هل وجدت حلا حتى الان؟
تحرير: تغيير ترميز الأحرف إلى windows-1252 عمل بالنسبة لي.

@ marijnz0r شكرا جزيلا لك!
اعتدت أن أواجه مشكلة مثل هذه مع الحرف °.
لحل مشكلتي فعلت ذلك:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');

Tks الكثير من المساعدة!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات