2014-09-02 90 views
0

PHPExcel_Chart_DataSeriesValues的構造是:在PHPExcel的x軸上設置dateTime?

construct (  
$dataType = self::DATASERIES_TYPE_NUMBER, 
$dataSource = null, 
$formatCode = null, 
$pointCount = 0, 
$dataValues = array(), 
$marker = null 

我嘗試以這種方式插入formatCode:

$xAxisTickValues = array(
new PHPExcel_Chart_DataSeriesValues('String', 'worksheet!$A$2:$A$9', 'yyyy-mm-dd hh:mm:ss', NULL, 4)); 

,但它不工作?這裏有什麼問題?

我使用PHPExcel_Chart_DataSeries :: TYPE_SCATTERCHART。

當我不使用'formatCode'時,我的x軸顯示了原始excel日期時間:41760,41761 ..等等,而不是2014-05-01 00:00:00,2014-05-01 12: 00:00,..,

有沒有人有一個很好的例子,說明如何在PHPExcel的X軸上插入日期和時間?

See the problem

回答

1

我找到了解決方案通過使黑客在PHPExcel /作家/ Excel2007的/ Chart.php線493

//$objWriter->writeAttribute('formatCode', "General"); 
     $objWriter->writeAttribute('formatCode', "dd/mm/yy\ hh:mm:ss;@"); 

更改formatCode爲「DD/MM/YY \ HH:MM :@「

但爲什麼」General「是硬編碼的!

UPDATE: 發現在PHPExcel /作家/ Excel2007中/ Chart.php 更改$ ID2另一個bug至$ ID1。如果你不想要Y軸標籤定位問題?

if ($id1 > 0) { 
       $objWriter->startElement('c:crossAx'); 
        //$objWriter->writeAttribute('val', $id2); 
        $objWriter->writeAttribute('val', $id1); 
       $objWriter->endElement();