ThinkPHP5实现PHPExcel操作
下载好类文件以后,先找到我们需要的类文件
然后选好框架,找到与application同级的目录,叫做:extend
然后在index.php入口文件中加一行代码用来定义路径的(虽然不一定能用上)
define('EXTEND_PATH', __DIR__ . '/../extend/');//加载第三方路由
然后在extend目录下创建文件夹lib,在把excel的类放进去
打开PHPExcel设置命名空间
完成配置,现在可以使用了!
我们在控制器use一下,例如:
你可能会遇到报错,比如什么类型错误之类的或者找不到类之类的,只需要在PHPexcel所有用到的类前面加个反斜杠就可以了,例如
要注意的是需要把整个文件里面所有的地方都加上,这个时候可能会报错instance之类的,依照惯例,ctrl+单击,找到上面被圈起来的类,在头文件引用一下就可以了,比如
就是这个类没有找到,所以在头部
use PHPExcel就可以了!!!!
配置完成,那你可以开心的玩耍PHPExcel了~
要注意的是在做导入的时候文件格式不一样用到的代码也是不一样的
报错:Cannot declare class lib\PHPExcel, because the name is already in use in D:\phpStudy\WWW\month6_1607phpA\TP5\extend\lib\PHPExcel.php on line 35
原因:是因为类名使用重复了,这个时候需要修改以下主文件,也就是PHPExcel的名字,注意一处修改处处修改,不过phpstorm是比较不错的,例如:
会给你改一部分,然后调试以下之前引用过的部分,改成新名字,就可以继续了,直到你碰到下边的代码
可能会抛出一个错误:Cannot declare class lib\PHPExcel, because the name is already in use in D:\phpStudy\WWW\month6_1607phpA\TP5\extend\lib\PHPExcel.php on line 35
原因:我使用的场景是上传了xlsx的文件,所以会使用2007的那段代码,所以出现了报错
所以就去2007的文件里面去找,找报错中的方法
果然是可以找到的!然后修改成我们新的主文件名字就可以了(别忘记引用命名空间哦~)
做导出的时候,设置sheet名称会报错
关注到我标红的地方了吗?去源代码修改吧!!!
再看,报错是updateNameFormulas这个方法报错,所以ctrl+单击找到这个方法,你就找到问题了!
然后在开头需要use一下主文件,不然也会报错!
继续查看报错
按照上面的思路继续找到854行,ctrl+点击追溯源代码,发现引用的主文件也是错的
修改了再试试看,就不会报错了,代码也可以开心的运行了~