Laravel-excel: [質問]セルの値がfalseとして返されます

作成日 2017年09月27日  ·  3コメント  ·  ソース: Maatwebsite/Laravel-Excel

Laravel Excel2.1を使用しています。 Laravel5.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です。

問題は最後の3行にのみ関係します。 私がファイルを読んだとき:

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のみを含む最後の3つのセルを除いて、すべての正しい値が含まれています。 falseではなく、文字列を取得したいと思います。

ただし、最初の行からすべてのを削除すると、最初の行だけでなく、残りの行でも正常に機能します。
最初の行は次の配列として読み取られます: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8]
2番目の行は、次の配列として読み取られます: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"] 。 後続のすべての行は、2番目の行と同様の方法で読み取られます。
処理する予定のすべてのファイルの最初の行をサニタイズできないので、セルから値を文字列として正しくフェッチするように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 評価