phpexcel和其他导入excel的插件遇到的问题

首先我接收到领导给我的xlsx文件(2007以后版本的excel)
导入并读取里面的内容使用phpexcel的toarray方法将对象转换为数组 但是提示下标不能为0报错
我一开始以为是编码问题,后来一次偶然发现打开文件什么都不改直接ctrl+c然后拿去就可以导入并读取了。
后来百度了解到其实xlsx(相当于一堆xml文件的压缩包,里面包含excel的文本内容格式字体等等xml文件)
由于xlsx文件在winods环境下改动或保存会增加很多xml文件(领导发我的文件我将后缀改为.rar打开发现里面只有9个xml文件,如果在windows下改动或者不改动直接保存打开会发现里面有17个文件)
导致phpexcel读取到的对象结构不一致 所以不能用自带的toarray函数转换 改成循环判断结构并用 __toString将对象转化字符串
**
如果你发现领导的excel文件有缺失(xml文件数量不对)现象,就不能用toarray来获取数组了 只能自己循环获取并判断是否是字符串 不是字符串用__toString()来转化成字符串并拼接成数组
至于为什么同一个文件发来的时候和什么都不修改直接点击保存后里面的xml文件数量不一样这个我也不知道为啥 个人猜测可能可能是excel软件会对里面的xml文件进行补全
下面是代码

/获取表单上传文件
        $file = request()->file('file');
        $info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值