Commit fff8fede authored by yinxiaoling's avatar yinxiaoling

excel下载模板替换

parent 0824a700
......@@ -149,7 +149,10 @@ class StrategySetController extends Controller
$datas[0][0]= "姓名";
$datas[0][1]= "*手机号码";
$datas[0][2]= "值班日期";
$StrategyService->storeExcelStyle($excelName, $datas,3,'',1);
$datas[1] = ['小a',13112345678,'2020/5/20'];
//$StrategyService->storeExcelStyle($excelName, $datas,3,'',1);
$StrategyService->exportPHPExcel($excelName, $datas);
}
public function downloadFailExcel(Request $request){
......
......@@ -147,7 +147,6 @@ class StrategyService
$objRichText->createText(ltrim($datas[0][$k],'*'));
$sheet->setCellValue($arr[$k].'1',$objRichText);
}
}
});
......@@ -181,6 +180,63 @@ class StrategyService
}
}
//保存内容到excel文件,第一行*号红色,$firstRed为1则处理第一行红色*号,0不处理*
public function exportPHPExcel($excelName,$datas,$firstRed=1){
try{
$datas0 = $datas[0];
$objPHPExcel = new \PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
//$objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);
$capitalArr = range('A','Z');
if(count($datas0)>0 && $firstRed == 1){
foreach($datas0 as $key => $value){
$objRichText = new \PHPExcel_RichText();
if (strpos($value, '*') === 0){
$objPayable = $objRichText->createTextRun('*');
$objPayable->getFont()->setColor( new \PHPExcel_Style_Color( \PHPExcel_Style_Color::COLOR_RED ) );//设置颜色
}
$objRichText->createText(ltrim($value,'*'));
$sheet = $key < 26 ? $capitalArr[$key] : 'A'.$capitalArr[$key-25];
$objPHPExcel->getActiveSheet()->setCellValue($sheet.'1', $objRichText);
$objPHPExcel->getActiveSheet()->getColumnDimension($sheet)->setWidth(12);
}
}
foreach ($datas as $kdata=>$vdata){
if ($kdata >= $firstRed){
foreach ($vdata as $key=>$value){
$sheet = $key < 26 ? $capitalArr[$key] : 'A'.$capitalArr[$key-25];
if ($key == 0){ //第一列
$objPHPExcel->getActiveSheet()->setCellValueExplicit($sheet.($kdata+1), $value,\PHPExcel_Cell_DataType::TYPE_STRING);
}elseif ($key == 1){//第二列
$objPHPExcel->getActiveSheet()->setCellValueExplicit($sheet.($kdata+1), $value,\PHPExcel_Cell_DataType::TYPE_NUMERIC);
}else{
$objPHPExcel->getActiveSheet()->setCellValue($sheet.($kdata+1), $value);
}
}
}
}
//$PHPWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
//header('Content-Type: application/vnd.ms-excel; charset=utf-8');
//header('Content-Disposition: attachment;filename="'.$excelName.'.xls"');
$PHPWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_end_clean();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$excelName.'.xlsx"');
header('Cache-Control: max-age=0');//禁止缓存
$PHPWriter->save("php://output");
exit;
}catch(\Exception $e){
Log::channel('api')->info('下载失败:'.$e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return false;
}
}
//添加策略处理excel数据入库
public function insertStrategyExcel($strategySn,$data){
if (count($data) > 0){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment