Laravel-excel: [问题] 单元格的值返回为 false

创建于 2017-09-27  ·  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 等级