php表格\PhpOffice\PhpSpreadsheet\Spreadsheet使用
单元格日期格式化
$worksheet->getStyle('AH'.$row) ->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); |
单元格下拉列表,限定输入值
$statusList = ['1' => '待结算', '2' => '已结算']; $statusList = implode(',', $statusList); $objValidation1 = $worksheet->getCell('AG' . $row) ->getDataValidation(); $objValidation1->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) ->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) ->setAllowBlank(false) ->setShowInputMessage(true) ->setShowErrorMessage(true) ->setShowDropDown(true) ->setErrorTitle('输入的值有误') ->setError('您输入的值不在下拉框列表内.') ->setPromptTitle('') ->setPrompt('') ->setFormula1('"' . $statusList . '"'); // 设置为变量内容 foreach ($data as $item) { $column = 1; foreach ($item as $value) { $worksheet->setCellValueByColumnAndRow($column, $row, $value); if($column == 33 ){ $objValidation1 = $worksheet->getCell('AG' . $row) ->getDataValidation(); $objValidation1->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) ->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) ->setAllowBlank(false) ->setShowInputMessage(true) ->setShowErrorMessage(true) ->setShowDropDown(true) ->setErrorTitle('输入的值有误') ->setError('您输入的值不在下拉框列表内.') ->setPromptTitle('') ->setPrompt('') ->setFormula1('"' . $statusList . '"'); // 设置为变量内容 } $column++; } $row++; } |
取消长数字科学计算法
方法①
$worksheet->setCellValueExplicitByColumnAndRow($column, $row, $value,\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); |
方法②
在单元格内容加上空格即可