使用PHPExcel读取Excel文件时会读出乱码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHPExcel读取Excel文件时会读出乱码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4182字,纯文字阅读大概需要6分钟。
内容图文
![使用PHPExcel读取Excel文件时会读出乱码](/upload/InfoBanner/zyjiaocheng/201/796aa2d894814e66b4f8d7a0f0ec2c77.jpg)
require_once dirname(__FILE__) . "/PHPExcel/Classes/PHPExcel.php"; $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo "no file"; die; } } $PHPExcel = $PHPReader->load($filePath); $sheetCount = $PHPExcel->getSheetCount(); $sheetNames = $PHPExcel->getSheetNames(); for ($SheetID = 0; $SheetID < $sheetCount; $SheetID++) { $name = $sheetNames[$SheetID]; $currentSheet = $PHPExcel->getSheetByName($name); $allColumn = $currentSheet->getHighestColumn(); $allRow = $currentSheet->getHighestRow(); $drive = new DriveCommand(); $data = array(); for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) { for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue(); //$objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = $val; $data[$currentRow][] = $val; } } if ($name == "产品信息") $name = "product"; else if ($name == "行业") $name = "industry"; else if ($name == "集团信息"){ continue; $name = "bloc"; var_dump($data); die; } else if ($name == "客户信息") { var_dump($data); die; $name = "customer"; } else if ($name == "业务员信息") $name = "employeer"; else continue; $drive->actionUpload($name, $data); }
这是截图:
读取的内容前一部分没有问题,后面的也没有问题,但是中间这部分会变成这个样子。
回复讨论(解决方案)
没有看到乱码
截图中的是你 var_dump 的结果
Excel文件中的数据都是正常的,但是在读取的时候中间会有一部分读取出类似于“ (12) { ["_name":protected]=> string(6) "宋体" ["_size":protected]=> int(12) ["_bold":protected]=> bool(false) ["_italic":protected]=> bool(false) ["_superScript":protected]=> bool(false) ["_subScript":protected]=> bool(false) ["_underline":protected]=> string(4) "none" ["_strikethrough":protected]=> bool(false) ["_color":protected]=> object(PHPExcel_Style_Color)#3006 (4) { ["_argb":protected]=> string(8) "FF000000" ["_parentPropertyName":protected]=> NULL ["_isSupervisor":protected]=> bool(false) ["_parent":protected]=> NULL } ”这样的数据。正常的数据输出应该是 [2]=> array(13) { [0]=> string(6) "B01001" [1]=> string(6) "超市" [2]=> string(12) "百佳超市" [3]=> string(6) "广东" [4]=> string(6) "广州" [5]=> string(21) "广州中华广场店" [6]=> string(51) "广州越秀区中山三路228号中华广场三层" [7]=> NULL [8]=> NULL [9]=> NULL [10]=> NULL [11]=> float(2735) [12]=> string(6) "caoshi" } [3]=> array(13) { [0]=> string(6) "B01002" [1]=> string(6) "超市" [2]=> string(12) "百佳超市" 这种格式。
我也有时候会碰到乱码,有时候又是好的,估计是微软excel问题。
没有看到乱码
截图中的是你 var_dump 的结果
Excel文件中的数据都是正常的,但是在读取的时候中间会有一部分读取出类似于“(12) { ["_name":protected]=> string(6) "宋体" ["_size":protected]=> int(12) ["_bold":protected]=> bool(false) ["_italic":protected]=> bool(false) ["_superScript":protected]=> bool(false) ["_subScript":protected]=> bool(false) ["_underline":protected]=> string(4) "none" ["_strikethrough":protected]=> bool(false) ["_color":protected]=> object(PHPExcel_Style_Color)#3006 (4) { ["_argb":protected]=> string(8) "FF000000" ["_parentPropertyName":protected]=> NULL ["_isSupervisor":protected]=> bool(false) ["_parent":protected]=> NULL } ”这样的数据。正常的数据输出应该是[2]=> array(13) { [0]=> string(6) "B01001" [1]=> string(6) "超市" [2]=> string(12) "百佳超市" [3]=> string(6) "广东" [4]=> string(6) "广州" [5]=> string(21) "广州中华广场店" [6]=> string(51) "广州越秀区中山三路228号中华广场三层" [7]=> NULL [8]=> NULL [9]=> NULL [10]=> NULL [11]=> float(2735) [12]=> string(6) "caoshi" } [3]=> array(13) { [0]=> string(6) "B01002" [1]=> string(6) "超市" [2]=> string(12) "百佳超市" 这种格式。
我也有时候会碰到乱码,有时候又是好的,估计是微软excel问题。
是的,读取的前一部分内容还是正常的,后面也是正常的,但是中间就会有一部分读出像图片里那样。
问题已经解决了。是因为读取单个cell的内容,读取的结果可能是object类型,也可能是string类型,加上一个判断,修改下类型就好了。
内容总结
以上是互联网集市为您收集整理的使用PHPExcel读取Excel文件时会读出乱码全部内容,希望文章能够帮你解决使用PHPExcel读取Excel文件时会读出乱码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。