2014-09-10 83 views
-4

我需要使用CSV文件中的數據生成儀表板。示例CSV文件將如下所示。從CSV數據生成儀表板

  1. 14年9月9日,詹姆斯; OK
  2. 14年9月19日,詹姆斯; NOK
  3. 14年9月29日,吉姆; NOK

的數據需要呈現的類似如下。

  1. 名; 2014年9月9日; 2014年9月19日; 2014年9月29日
  2. 詹姆斯; OK; NOK;
  3. 吉姆;;; NOK

能否請您提出來從源數據文件中的儀表盤的方法。

+0

你嘗試過這麼遠嗎? csv文件是否已經在服務器上,或者您是否還需要編寫代碼來處理文件上傳? – Steve 2014-09-10 09:37:29

+1

是的,它可能在PHP中,你可以通過閱讀文件fgetcsv開始 – bumperbox 2014-09-10 09:37:54

+0

我一時沒有開始。首先,我想確定我正在以良好的方式工作。我沒有完全用fgetcsv解決方案,因爲循環可能會非常棘手的組織。我不需要完整的代碼,因爲方法。 CSV文件已經在服務器上。 – 2014-09-10 10:16:43

回答

0

這可以通過php數組來處理。以下是您的要求的完整工作代碼。

<pre> 
<?php 

$filename = 'data.csv'; 
$contents = file($filename); 

$col[] = "Name"; 

foreach($contents as $line) { 
    $line = preg_replace("/\r|\n/", "", $line); 
    $line_array = explode(";",$line); 
    if(!in_array($line_array[0],$col)){ 
     $col[] = $line_array[0]; 
    } 
    $row[$line_array[1]][$line_array[0]]=$line_array[2]; 
} 

foreach($col as $val) 
{ 
    echo $val . ";"; 
} 

echo "\n"; 
unset($col[0]); 

foreach($row as $key=>$row_val) 
{ 
    echo $key . ";"; 
    foreach($col as $col_val) 
    { 
     if(!isset($row_val[$col_val])) 
     { 
      $row_val[$col_val] = ""; 
     } 
     echo $row_val[$col_val] . ";"; 
    } 
    echo "\n"; 
} 
?> 

和工作樣本可以在這裏看到:http://sugunan.net/demo/csv.php

+0

雖然這是在閱讀文件,但我不確定這是OP所要求的「儀表板」 - 說了這個問題在任何情況下都不適合SO。 – Fluffeh 2014-09-10 10:34:00

+0

這個問題不清楚他是否想要在網頁或其他CSV上輸出。如果他希望通過修改代碼來完成表格或json。唯一的一點我在這裏嘗試採取明智的日期和狀態的人採取列智者日期和行明智的人。 – sugunan 2014-09-10 10:55:52

+1

感謝上師,感謝你我接近尾聲。它的工作,但我有這個錯誤信息:名稱; 09.09.14; 19.09.14; 29.09.14; James; OK; NOK; 注意:Undefined index:29.09.14 in C:\ xampp \ htdocs \ Pointage \ Table2.php on line 31 ;吉姆; 注意:未定義索引:09.09.14在C:\ xampp \ htdocs \ Pointage \ Table2.php上線31 ; 注意:未定義的索引:19.09.14在C:\ xampp \ htdocs \ Pointage \ Table2.php上線31 ; NOK10.09.14;並且我不想禁用這種通知 – 2014-09-10 14:56:04