PHPExcel导入后缀为“xls”的excel文件报错“'ziparchive.getfromname'>ziparchive.getfromname

wuran_beijing 2016-07-10 07:12:29
代码如下:【使用YII框架】
public function actionLoad() {
if (isset($_POST['submitBtn'])) {
$file = CUploadedFile::getInstanceByName('repair_attached_file'); //获取上传的文件实例
if ($file->getType() == 'application/vnd.ms-excel') {
$excelFile = $file->getTempName(); //获取文件名
//这里就是导入PHPExcel包了
Yii::$enableIncludePath = false;
Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
$phpexcel = new PHPExcel;
$excelReader = PHPExcel_IOFactory::createReader('Excel2007');
$phpexcel = $excelReader->load($excelFile)->getSheet(0); //载入文件并获取第一个sheet
$total_line = $phpexcel->getHighestRow();
$total_column = $phpexcel->getHighestColumn();
echo $total_column;
$data = array();
for ($row = 2; $row <= $total_line; $row++) {
for ($column = 'A'; $column <= $total_column; $column++) {
$data[] = trim($phpexcel->getCell($column . $row)->getValue());
}
}
var_dump($data);
}
}
}
...全文
1223 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2017-02-18
  • 打赏
  • 举报
回复
2007是xlsx 之前的是xls 需要判断调用不同的处理类。
m0_37497455 2017-02-16
  • 打赏
  • 举报
回复
if ($extension == "xlsx") { $reader = PHPExcel_IOFactory::createReader('Excel2007'); } else { $reader = PHPExcel_IOFactory::createReader('Excel5'); } 你读取的时候不是读取的Excel2007,应该是读取Excel5,所以报错 应该判断是xls还是xlsx 还有最好在前面能对文件类型先进行控制
wuran_beijing 2016-07-11
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
这就是你的问题了! 你 $excelReader = PHPExcel_IOFactory::createReader('Excel2007'); 去打开 xls 文件,出错是正常的 Excel2007 的后缀是 xlsx
两个问题: 1)那xls需要用啥,我换成Excel5报错了 2)我上传一个xlsx的文件,虽然没有报错,但是后面这句话确没有执行,文件是有内容的啊。 求加qq,哥们我的 “2269839033”
xuzuning 2016-07-10
  • 打赏
  • 举报
回复
这就是你的问题了! 你 $excelReader = PHPExcel_IOFactory::createReader('Excel2007'); 去打开 xls 文件,出错是正常的 Excel2007 的后缀是 xlsx

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧