2016-01-04 85 views
0

我想從數據庫中使用php下載報告。我在獲取數據方面很成功,但我堅持格式化單元格。任何人都可以指導我如何格式化Excel?格式excel表使用php

我不能使用PHPExcel或Spread Sheet Writer等任何第三方插件。

我試圖在PHP中連接html代碼,但沒用。

任何幫助表示讚賞。

<?PHP 




session_start(); 

    if(isset($_SESSION['desion'])){$data=$_SESSION['desion'];}else{$data="";}; 

    function cleanData(&$str) 
    { 
    $str = preg_replace("/\t/", "\\t", $str); 
    $str = preg_replace("/\r?\n/", "\\n", $str); 
    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; 
    } 
for($i=0;$i<count($data);$i++){ 
unset($data[$i]['comid']); 
} 

    header("Content-Disposition: attachment; filename= DecisionMaker.xls"); 
    header("Content-Type: application/vnd.ms-excel"); 



$flag = false; 
foreach($data as $row) { 
    if(!$flag) { 
     // display field/column names as first row 

     echo implode("\t", array_keys($row)) . "\r\n\n"; 
     $flag = true; 
    } 
    array_walk($row, 'cleanData'); 
    echo implode("\t", array_values($row)) . "\r\n"; 
    } 
    exit; 
?> 
+0

格式可只能使用PHPExcel或任何其他庫來完成,因爲這些類主要處理格式化部分。 –

+0

您可能想嘗試導出到csv [使用PHP創建可下載的CSV文件](http://code.stephenmorley.org/php/creating-downloadable-csv-files/)。 –

+0

@PhilCooper - 這就是海報的代碼所做的事情,雖然使用了一個糟糕的自制CSV創建,而不是使用PHP的內置函數 –

回答

0

您不是創建Excel電子表格,而是創建一個CSV文件,它只是MS Excel能夠導入的文件格式。而CSV文件根本沒有格式,它們只是原始數據。如果你想格式化,那麼你需要創建一個真正的本機格式的Excel文件(無論是舊的BIFF格式.xls文件,或更新的OfficeOpenXML格式.xlsx文件)....要做到這一點,你真的想使用其中之一用於創建本機格式Excel文件的PHP庫,例如PHPExcel(無論您是否希望),否則您將不得不花費大量時間編寫自己的文件。

以供參考,PHP具有可用於正確地創建CSV文件,內置fputcsv()函數,所以你不需要使用的「自制」您目前使用

+0

感謝您的信息。它真的幫助我。 – 3bu1