PHPExcel+Thinkphp3.2 的一个简单实例

<?phpnamespace Home\Controller;use Think\Controller;use Vendor\phpExcel;class IndexController extends Controller {public function index(){$fileName="yc";$this->out($fileName);}/*** 读取Excel文件*/public function ReadExcel($fileName){//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入import("Org.Util.PHPExcel");import("Org.Util.PHPExcel.Reader.Excel5"); //$objPhpExcel = new \PHPExcel();//实例化PHP_Reader_Excel5 $PHPReader=new \PHPExcel_Reader_Excel5();//载入文件$PHPExcel=$PHPReader->load($fileName);//获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推$currentSheet=$PHPExcel->getSheet(0);//获取总列数$allColumn=$currentSheet->getHighestColumn();//获取总行数$allRow=$currentSheet->getHighestRow();//循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始for($currentRow=1;$currentRow<=$allRow;$currentRow++){//从哪列开始,,A表示第一列for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){//数据坐标$address=$currentColumn.$currentRow;//读取到的数据,保存到数组$arr中$arr[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();}}//输出到浏览器(测试)dump($arr);}/*** 生成的Filename为Excel文件名前缀*/public function out($fileName){$data = array(array('username'=>'zhangsan','password'=>"123456"),array('username'=>'lisi','password'=>"abcdefg"),array('username'=>'wangwu','password'=>"111111"),);//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能import导入import("Org.Util.PHPExcel");import("Org.Util.PHPExcel.Writer.Excel5");import("Org.Util.PHPExcel.IOFactory.php");$headArr=array("用户名","密码"); //标题头//生成Excel文件$this->generalExcel($fileName,$headArr,$data);}/***/privatefunction generalExcel($fileName,$headArr,$data){//对数据进行检验if(empty($data) || !is_array($data)){die("data must be a array");}//检查文件名if(empty($fileName)){exit;}$date = date("Ymd",time());//拼接文件名格式:文件名_yyyymmdd.xls$fileName .= "_{$date}.xls";//创建PHPExcel对象,注意,不能少了\$objPHPExcel = new \PHPExcel();$objProps = $objPHPExcel->getProperties();//设置表头$key = ord("A");foreach($headArr as $v){$colum = chr($key);$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);$key += 1;}$row = 3; //写入数据起始行$objActSheet = $objPHPExcel->getActiveSheet();//行写入foreach($data as $key => $rows){$span = ord("A");// 列写入foreach($rows as $keyName=>$value){$j = chr($span);$objActSheet->setCellValue($j.$row, $value);$span++;}$row++;}// $fileName = iconv("utf-8", "utf-8", $fileName);//重命名Sheet名称$objPHPExcel->getActiveSheet()->setTitle('YANGC');//设置活动单指数到第一个表,所以Excel打开这是第一个表$objPHPExcel->setActiveSheetIndex(0);header('Content-Type: application/vnd.ms-excel');header("Content-Disposition: attachment;filename=$fileName");header('Cache-Control: max-age=0');$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output'); //文件通过浏览器下载exit;}}

版权声明:本文为博主原创文章,未经博主允许不得转载。

你可以很有个性,但某些时候请收敛。

PHPExcel+Thinkphp3.2 的一个简单实例

相关文章:

你感兴趣的文章:

标签云: