2016-08-19 4 views
1
<?php 
if($_POST) { 
//here i give test $result datas 
$result = array(array("Date"=>"2016-01-01","Time"=>"01:08:06","num"=>"","amount"=>"0.12"), array("Date"=>"2016-01-02","Time"=>"02:08:06","num"=>"1234567890","amount"=>"1.12"),array("Date"=>"2016-01-03","Time"=>"03:08:06","num"=>"1234567899","amount"=>"3.12") 
    ); 
    require_once "phpexcel/class.writeexcel_workbook.inc.php"; 
    require_once "phpexcel/class.writeexcel_worksheet.inc.php"; 
    $fname = tempnam("/tmp", "simple.xls"); 
    $workbook = &new writeexcel_workbook($fname); 

    $f_volume =& $workbook->addformat(); 
    //$f_volume->set_align('left'); 
    $f_volume->set_num_format('@'); 

    $gen =& $workbook->addformat(); 
    $gen->set_align('left'); 
    $gen->set_num_format('General'); 


    $dat =& $workbook->addformat(); 
    //$dat->set_align('left'); 
    $dat->set_num_format('DD/MM/YYYY'); 

    $inv_ref =& $workbook->addformat(); 
    $inv_ref->set_num_format('YYYY-MM-DD HH:MM:SS'); 

    $setup =& $workbook->addformat(); 
    $setup->set_align('left'); 
    $setup->set_num_format('#,###.00#'); 

    $tax =& $workbook->addformat(); 
    $tax->set_align('left'); 
    $tax->set_num_format('0.###%'); 

    $worksheet = &$workbook->addworksheet("My Report"); 

    $worksheet->write_string(0,0,'Date'); 
    $worksheet->write_string(0,1,'Time'); 
    $worksheet->write_string(0,2,'Dialled'); 
    $worksheet->write_string(0,3,'Rate'); 


    $worksheet->set_column(0,0,10,$dat); 
    $worksheet->set_column(0,1,10,$f_volume); 
    $worksheet->set_column(0,2,20,$f_volume); 
    $worksheet->set_column(0,3,10,$f_volume); 



    $j=1; 
    $unitTotal = 0; 
    $totalTotal = 0; 
    if(count($result) > 0) { 
     foreach($result as $outKey=>$rr){ 
      $worksheet->write($j,0,date("d/m/Y",strtotime($rr['Date']))); 
      $worksheet->write($j,1,$rr['Time']); 
      $worksheet->write($j,2,$rr['Dialled']); 
      $worksheet->write($j,3,$rr['Rate']); 
     } 
    } 

    $workbook->close(); 

    //header("Content-Type: application/x-msexcel; charset=UTF-8"); 
    header("Content-Type: application/x-msexcel; name=Calls Report.xls"); 
    header("Content-Disposition: inline; filename=Calls Report.xls"); 
    $fh=fopen($fname, "rb"); 
    fpassthru($fh); 
    unlink($fname); 
} 
?> 

я использовал приведенный выше код для создания «Мой отчет» Excel и его хорошо работает, проблема после открытого первенствует правой кнопкой мыши над клеточно> Формат ячеек затем его шоу текстовый формат, но мне нужно, чтобы показать, если я выбираю дату, а затем формат Date, если время, то формат - это время, если его размер тогда равен валюте, я использовал «$ dat», чтобы установить формат даты здесь, но не работает.Как изменить формат Excel или формат столбца с помощью php?

ответ

0

Из документации библиотеки, загружаемые с их GitHub репо ...

$objPHPExcel->getActiveSheet()->getStyle('A6') 
    ->getNumberFormat() 
    ->setFormatCode(
     PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME 
    ); 

https://github.com/PHPOffice/PHPExcel/blob/1.8/Documentation/PHPExcel%20developer%20documentation.doc

ли это achive то, что вы хотите? Я не могу проверить его сам прямо сейчас.

+0

Хотя, похоже, вы можете использовать другую/более старую версию библиотеки. Вы уверены, что используемая libarary поддерживает то, что вы хотите сделать? – Relequestual

+0

Я проверю и дам вам знать – Prime

+0

. Глядя на документацию для библиотеки, которую вы используете, обычно будет несколько шагов, прежде чем приступить к SO, заявив, что что-то не работает, как вы ожидаете. – Relequestual

Смежные вопросы