• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用有关问题解决

php 搞代码 4年前 (2022-01-24) 7次浏览 已收录 0个评论

ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用问题解决

ThinkPHP3.2 采用了namesapce,就是所谓的命名空间,会导致很多盆友放到/Vendor下边导入文件的时候出现各种问题,鄙人百度了好多,但是好多都是老版本,最新版的ThinkPHP跟PHPExcel一直没有解决,没有办法,只能看代码,终于,找到了这个问题的解决办法,在这里Mark下,有需要的盆友可以看看。

把PHPExcel加压之后的文件里边的Classes的文件夹 PHPExcel 跟 php文件 PHPExcel.php 放到你\ThinkPHP\Library\Vendor 目录下,然后在Controller中这样写:

导入代码实例:

public function importExcel(){

vendor(‘PHPExcel’);

$PHPExcel = new \PHPExcel();

$saveFile = ‘/mnt/www/tp/Application/Home/Controller/test.xlsx’;

$PHPReader = new \PHPExcel_Reader_Excel2007();

if(!$PHPReader->canRead($saveFile)){

$PHPReader = new \PHPExcel_Reader_Excel5();

if(!$PHPReader->canRead($saveFile)){

echo ‘no Excel’;

return ;

}

}

$PHPExcel = $PHPReader->load($saveFile);

$currentSheet = $PHPExcel->getSheet(0);

/**get max column*/

$allColumn = $currentSheet->getHighestColumn();

/**get max row*/

$allRow = $currentSheet->getHighestRow();

$return = array();

$i=0;

for($currentRow = 2;$currentRow <= $allRow;$currentRow++){

for($currentColumn= ‘A’;$currentColumn<= $allColumn; $currentColumn++){

$count = ord($currentColumn) – 65;

$val = $curr来@源gao*daima.com搞@代#码网搞gaodaima代码entSheet->getCellByColumnAndRow($count,$currentRow)->getValue();

}

$i++;

}

}

导出实例代码:

public function exportExcel(){

vendor(‘PHPExcel’);

$objExcel = new \PHPExcel();

//set document Property

$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, ‘Excel2007’);

$objActSheet = $objExcel->getActiveSheet();

$key = ord(“A”);

$objActSheet->setCellValue(“A1”, ‘test1’);

$objActSheet->setCellValue(“A2”, ‘test2’);

$objActSheet->setCellValue(“B1”, ‘test3’);

$objActSheet->setCellValue(“B2”, ‘test4’);

$outfile = “test.xls”;

//export to exploer

header(“Content-Type: application/force-download”);

header(“Content-Type: application/octet-stream”);

header(“Content-Type: application/download”);

header(‘Content-Disposition:inline;filename=”‘.$outfile.'”‘);

header(“Content-Transfer-Encoding: binary”);

header(“Cache-Control: must-revalidate, post-check=0, pre-check=0”);

header(“Pragma: no-cache”);

$objWriter->save(‘php://output’);

exit;

}

各位可以试下,反正我是测试过了,至于你们信不信,反正我是信啦。

PS:其实没啥,就是导入文件之后,所有的new 都加个\,你就成功了,原来生活如此简单哦也!

再PS:第三方类库(TP的命名方式是已.class.php结尾的,如果你的类库中不是已这种方式结尾),请放到Think/Library/Vender中,然后使用vender()方式调用,比如你的Vendor文件夹下有个PHPExcel.php的文件,你只需要vendor(‘PHPExcel’);如果你的Vendor文件夹下有个PHPExcel的问价夹,里边test.php文件,你只需要vendor(‘PHPExcel.test’);

一次类推即可。

本文仅供初学者讨论学习,大牛请绕道,不喜勿喷,共建和谐社会!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用有关问题解决

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址