PhpSpreadsheet 读取csv/xlsx问题

PhpSpreadsheet 使用时csv格式文件里面有中文的行,需要加一个 $reader->setInputEncoding(‘GB2312’);
不然没法读取中文,但是加上之后,读取中文单元格里面的数据就有点错乱,一个列读取了好几个列数据,有没有大佬知道怎么解决,还是这是这个插件的不bug
![![](https://cdn.learnku.com/uploads/images/202202/17/18502/4mZa3ssEAN.png!large)](cdn.learnku.com/uploads/images/202...)

讨论数量: 6
zhuzixian520

您好,请问同学,有没有尝试设置 utf8 编码,试试

2年前 评论
long1774341213 (楼主) 2年前

相同的问题,请问楼主解决了没有?

2年前 评论

用插件没解决掉,只能直接封装一个去处理读取文件的

1年前 评论

指定读取文件的编码格式:除了使用$reader->setInputEncoding('GB2312')指定读取文件的编码格式外,还可以尝试其他编码格式,如UTF-8、GBK等。可以根据实际情况选择合适的编码格式。

使用fgetcsv函数读取csv文件:如果使用PhpSpreadsheet读取csv文件出现了问题,可以尝试使用PHP内置的fgetcsv函数来读取csv文件。这个函数可以指定csv文件的分隔符、文本限定符和编码格式等参数,可以更加灵活地处理csv文件。

$file = 'test.csv';
$handle = fopen($file, 'r');
if ($handle !== FALSE) {
    while (($data = fgetcsv($handle, 0, ',', '"', 'GB2312')) !== FALSE) {
        // 处理读取到的数据
        print_r($data);
    }
    fclose($handle);
}
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!