PHPExcel日期格式
我正在从MS SQL server获取“2012-08-09 00:00:00”(不带引号)格式的输出 但是,当我将其写入excel文件时,我无法将其写入日期格式,以便在excel上使用dd-mmm-yyy格式 因此,我尝试将format=date(2012,08,09)作为公式写入各个单元格 但我不想将其输出为公式,而是数据类型完整性保持不变的值'09 Aug 2012'。我该怎么做?还是有更简单的方法 我通读了文件,但不清楚,我想我会要求澄清 问候PHPExcel日期格式,php,phpexcel,Php,Phpexcel,我正在从MS SQL server获取“2012-08-09 00:00:00”(不带引号)格式的输出 但是,当我将其写入excel文件时,我无法将其写入日期格式,以便在excel上使用dd-mmm-yyy格式 因此,我尝试将format=date(2012,08,09)作为公式写入各个单元格 但我不想将其输出为公式,而是数据类型完整性保持不变的值'09 Aug 2012'。我该怎么做?还是有更简单的方法 我通读了文件,但不清楚,我想我会要求澄清 问候 很抱歉没有说得足够详细 我正在使用PHP
很抱歉没有说得足够详细 我正在使用PHPExcel库 在我的sql数组中,我使用以下命令:
$t_year = substr($xls_column_datas["colname"],0,4);
$t_month = substr($xls_column_datas["colname"],5,2);
$t_day = substr($xls_column_datas["colname"],8,2);
$t_format = $t_year . "," . $t_month . "," . $t_day ;
$t_format = '=date('.$t_format.')';
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($data_column_num, $data_row_num, $t_format );
$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($data_column_num, $data_row_num)->getNumberFormat()->setFormatCode('[$-C09]d mmm yyyy;@');
在我的excel输出中,它显示A2列,例如=日期(2012,8,9)
我希望excel能够识别“2012-08-09 00:00:00”是一个日期时间,并将其格式化为dd-mmm-yyyy,而不是显示为一个公式
这清楚了吗?抱歉。虽然不清楚您在问什么,但如果您正在寻找日期转换
// convert old date string to YYYYmmdd format
$date = date('d M Y', strtotime($old_date));
这将以2012年8月9日的格式输出日期为什么不让服务器为您更改格式?使用此查询设置日期的格式
SELECT convert(varchar(15), getdate(), 106)
这将导致2012年9月11日
从MS SQL获取日期作为日期/时间,或设置Excel日期时,您是否遇到问题 PHPExcel文档有一整节解释了
PHPExcel\u共享\u日期::PHPToExcel($PHPDate)
和PHPExcel\u共享\u日期::FormattedPHPToExcel($year、$month、$day、$hours=0、$minutes=0、$seconds=0)的使用
helper方法,用于将PHP日期转换为Excel日期时间戳值,将其设置为单元格值,然后将其中一个日期掩码的数字格式掩码(如PHPExcel\u Style\u NumberFormat::format\u date\u yyyyymmd2)应用于该单元格
而不是
$t_year = substr($xls_column_datas["colname"],0,4);
$t_month = substr($xls_column_datas["colname"],5,2);
$t_day = substr($xls_column_datas["colname"],8,2);
$t_format = '=date('.$t_format.')';
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($data_column_num, $data_row_num, $t_format );
$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($data_column_num, $data_row_num)->getNumberFormat()->setFormatCode('[$-C09]d mmm yyyy;@');
尝试设置
$t_year = substr($xls_column_datas["colname"],0,4);
$t_month = substr($xls_column_datas["colname"],4,2); // Fixed problems with offsets
$t_day = substr($xls_column_datas["colname"],6,2);
$t_date = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(
$data_column_num, $data_row_num, $t_date
);
$objPHPExcel->getActiveSheet()
->getStyleByColumnAndRow($data_column_num, $data_row_num)
->getNumberFormat()->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14
);
请参阅此链接,它可能有助于您Мццццццц[1]Сццццццццццццццц1094。但是PHPExcel中也有单元格的日期格式,但没有getDateFormat()函数。我不明白。可能是因为我在开放式办公室看到的?与开放式办公室的开放无关PHPExcel\u Style\u NumberFormat::FORMAT\u DATE\u XLSX14
是此代码示例中设置的格式,它不是数字格式,而是日期格式我有几乎相同的代码$list->setCellValueByColumnRow(+$column,$row,\PHPExcel\u Shared\u DATE::PHPToExcel($survey->task->closed)->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel\u Style\u NumberFormat::FORMAT\u DATE\u DDMMYYYY)代码>但看起来和我以前写的一样?问问题-一个适当的问题,显示适当的代码,而不是简单地对其他人的问题的答案进行评论-我会看看。。。。。但也许不要尝试从setCellValue()中设置getStyle()。。。。使用两个单独的语句
$date = PHPExcel_Style_NumberFormat::toFormattedString($data, "M/D/YYYY");