Blogger Information
Blog 4
fans 0
comment 0
visits 2358
Related recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
2018-1-23
随笔肆
Original
578 people have browsed it

excel导出是早就做好了的,当时没有记录来源。现在在做短信群发,要用的excel导入就一起记在日记了。

/* 导出excel
* $expTitle 标题前缀 $expCellName 字段 $expTableData 数据 $condition 条件说明
*/
public function exportExcel($expTitle,$expCellName,$expTableData,$condition)
{
    $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
    $fileName = $xlsTitle.date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
    $cellNum = count($expCellName);
    $dataNum = count($expTableData);
    vendor("PHPExcel.PHPExcel");//引入phpexcel
    $objPHPExcel = new PHPExcel(); //实例化
    $cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N');
    $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$condition.'mobile时间:'.date('Y-m-dH:i:s'));
    for($i=0;$i<$cellNum;$i++){
      $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
    }
    for($i=0;$i<$dataNum;$i++){
      for($j=0;$j<$cellNum;$j++){
       $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),$expTableData[$i][$expCellName[$j][0]]);
      }
    }
    header('pragma:public');
    header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
    header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印 inline本窗口
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    exit;
}
/*调用*/
public function export($xlsData){
        $xlsName  ='xy';      
        $xlsCell  = array(
            array('name','姓名'),
			array('phone','手机号'),
			array('city','城市'),
			array('address','详细地址'),
			array('time','报名时间')
        );
	$xlscondition="";
        $this->exportExcel($xlsName,$xlsCell,$xlsData,$xlscondition);
    }
/* 导入 excel*/
public function importExcel($file,$sheet=0)
{
    vendor("PHPExcel.PHPExcel");//引入phpexcel
    $PHPExcel = new PHPExcel();     
    $PHPReader = new PHPExcel_Reader_Excel2007(); 
    if(!$PHPReader->canRead($file)){
        $PHPReader = new PHPExcel_Reader_Excel5();
        if(!$PHPReader->canRead($file)){
            echo 'no Excel';
            return ;
        }
    }
    $PHPExcel = $PHPReader->load($file);//建立excel对象
    $currentSheet = $PHPExcel->getSheet($sheet);//读取指定sheet表
    $allColumn = $currentSheet->getHighestColumn();//取得最大的序号
    $allRow = $currentSheet->getHighestRow();//一共有多少行
    $data=array();
    for($currentRow = 1; $currentRow<=$allRow; $currentRow++){
       for($currentColumn='A'; $currentColumn<=$allColumn; $currentColumn++){   
            $address = $currentColumn.$currentRow;   
            $date[]= $currentSheet->getCell($address)->getValue();   
       }
    } 
    return $date;
}
/*上传调用*/
if ($_FILES["file"]["error"] > 0){
    $this->error("Error: " . $_FILES["file"]["error"]);
}else{
    $excaldata=$this->importExcel($_FILES["file"]["tmp_name"]);	//临时存储地址
}

版本tp3.1,php5.2.17,IIS6,在 new PHPExcel(); 时报错, 加入反斜杠 new \PHPExcel();后显示正常。目前不知具体报错原因。

本次导入excel是用于短信群发,另尝试了一下直接从textarea输入手机号,以换行符为分隔符。但数组的值也可能因输入不当存在空格。

$mobile_list = trim($_POST['mobile']);
$mobile_arr = explode("\r\n", $mobile_list );


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post