php对excel操作 创建并写入excel 打开并写入excel

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zgahlibin/article/details/78808827

直接上代码,留作下次参考


function excelOut($num,$head, $data, $fileName) {


require './addons/library/PHPExcel/PHPExcel.php';




// TODO 查询记录
$cols = count($head);
if($num != 0){
$filePath = './data/uploads/'.$fileName;
$objPHPExcel = PHPExcel_IOFactory::load($filePath);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
for($i = 0; $i < 50; $i++) {
//导出数据为excel的最大值时
if($num == 1310 && $i ==36){
return "{'statuscode':'200','end':'1', 'last':'65536','fileName':'$fileName'}";
}
//导出数据为空时
if(empty($data[$i])){
$objWriter->save('./data/uploads/'.$fileName);
return "{'statuscode':'200','end':'1', 'last':$i+$num*50,'fileName':'$fileName'}";
}
//插入数据
for ($j = 0; $j < $cols; $j++) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValue(letter($j) . ($i+($num)*50+2), $data[$i][$j], PHPExcel_Cell_DataType::TYPE_STRING);
}
}
$objPHPExcel->setActiveSheetIndex(0);
$objWriter->save('./data/uploads/'.$fileName);
}else{
// 创建excel
$excel_obj = new PHPExcel();
$objWriter = new PHPExcel_Writer_Excel5($excel_obj);
$excel_obj->setActiveSheetIndex(0);
$act_sheet_obj=$excel_obj->getActiveSheet();
//写入excel头
foreach ($head as $k=>$v) {
$act_sheet_obj->setCellValue(letter($k).'1', $v);
}
$fileName = md5(time()).'.xls';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.$fileName);
//插入前50条数据
for($i = 0; $i < 50; $i++) {
//导出数据为空时
if(empty($data[$i])){
$objWriter->save('./data/uploads/'.$fileName);
return "{'statuscode':'200','end':'1', 'last':$i,'fileName':'$fileName'}";
}
//插入数据
for ($j = 0; $j < $cols; $j++) {
$act_sheet_obj->setCellValueExplicit(letter($j) . ($i+2), $data[$i][$j], PHPExcel_Cell_DataType::TYPE_STRING);
}
}
$objWriter->save('./data/uploads/'.$fileName);
}
return "{'statuscode':'200','fileName':'$fileName', 'last':($num+1)*50}";
}

猜你喜欢

转载自blog.csdn.net/zgahlibin/article/details/78808827
今日推荐