PHPExcel對於Excel中日期和時間類型的處理
require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel/IOFactory.php';
require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel/Shared/Date.php';
$filename = "PHPExcel_Date.xlsx";
$objReader = PHPExcel_IOFactory::createReaderForFile($filename);
//$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$data['sheetsinfo'] = $objReader->listWorksheetInfo($filename);
$objWriter = '';
$objPHPExcel->setActiveSheetIndex(0);
$worksheet = $objPHPExcel->getActiveSheet();
$columnCount = PHPExcel_Cell::columnIndexFromString( $worksheet->getHighestColumn() );
$rowCount = $worksheet->getHighestRow();
echo "<table>";
for($row = 1; $row <= $rowCount; $row++){
$cell = $worksheet->getCellByColumnAndRow(0, $row);
$cellstyleformat = $worksheet->getStyle($cell->getCoordinate())->getNumberFormat();
$formatcode = $cellstyleformat->getFormatCode();
$f_value = $cell->getFormattedValue();
$value = $cell->getValue();
$p_value = PHPExcel_Shared_Date::ExcelToPHP($value);
echo "<tr><td>$f_value</td><td>$value</td><td>$formatcode</td><td>$p_value</td></tr>";
}
echo "</table>";
$worksheet->setTitle("Date Test");
$phpexcel_date_format = array(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD, PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2, PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY, PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYSLASH, PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYMINUS, PHPExcel_Style_NumberFormat::FORMAT_DATE_DMMINUS, PHPExcel_Style_NumberFormat::FORMAT_DATE_MYMINUS, PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME1, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME2, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME3, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME5, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME6, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME7, PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME8, PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH, PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14, PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15, PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX16, PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX17, PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX22);
foreach ($phpexcel_date_format as $key => $value) {
//$cell = $worksheet->getCellByColumnAndRow(2, $key + 1);
//$cell->setValue(time())->setFormatCode($value);
$worksheet->setCellValue('C'.($key+2), PHPExcel_Shared_Date::PHPToExcel(time()));
$worksheet->getStyle('C'.($key+2))->getNumberFormat()->setFormatCode($value);
echo time() . "-" . $value;
}
$objWriter->save($filename);