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を設定する方法はありますか?
’
やé
ような文字を使用する場合にも、同じ問題が発生します。 解決策はもう見つかりましたか?
編集:文字エンコードをwindows-1252
うまくいきました。
@ marijnz0rありがとうございました!
私は以前、°文字でこのような問題を抱えていました。
私の問題を解決するために私はそれをしました:
Config::set('excel.import.encoding.input', 'windows-1252');
Config::set('excel.import.encoding.output', 'windows-1252');
Tksは大いに役立ちます!
最も参考になるコメント
@ marijnz0rありがとうございました!
私は以前、°文字でこのような問題を抱えていました。
私の問題を解決するために私はそれをしました:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');