2017-01-14 1 views
0

Я использую php laravel. Я пытаюсь экспортировать данные в файл excel .csv с уникальными данными или оставить ячейку пустой вместо дублирования данных. Какой фильтр я должен использовать для этого? Чтобы быть ясно, я покажу некоторые иллюстрации
Это пример View Excel с данными из массива, который экспортируется с помощью PHP:Использование кода php laravel: оставить ячейку (экспортировано excel) пустым, если массив дублируется

+--------+------------+-----------+ 
| Group | First Name | Last Name | 
+--------+------------+-----------+ 
| Group1 | John  | Doe  | 
+--------+------------+-----------+ 
| Group1 | Jane  | Doe  | 
+--------+------------+-----------+ 
| Group2 | John  | Smith  | 
+--------+------------+-----------+ 
| Group2 | Jane  | Smith  | 
+--------+------------+-----------+ 

Это пример Excel View, что мне нужно. Вы можете видеть, что дублирующие группы скрыты:

+--------+------------+-----------+ 
| Group | First Name | Last Name | 
+--------+------------+-----------+ 
| Group1 | John  | Doe  | 
+--------+------------+-----------+ 
|  | Jane  | Doe  | 
+--------+------------+-----------+ 
| Group2 | John  | Smith  | 
+--------+------------+-----------+ 
|  | Jane  | Smith  | 
+--------+------------+-----------+ 

И это код, который я использую:

public function getDashboardBookingsReport2($account_alias, $group_alias){ 
    header  (...) 

     $file = fopen('php://output', 'w'); 


     fputcsv($file, array('Group Name', 'First Name', 'Last Name')); 

     $table = (...) 

     $rowed[] = array(
      $egroup->name,  // Group 
      $user->first_name, // First Name 
      $user->last_name, // Last Name 
         ); 
        } 

       } 
      } 
       (...) 

     $data = $rowed; 
     uasort($data, function($a, $b) { 
      return strcmp($a[0], $b[0]); 
     }); 
     foreach ($data as $row) 
     { 
      fputcsv($file, $row); 
     } 

     exit(); 
    return Redirect::to($group_alias.'/app/dash'); 
} 
+0

Не знаете, что вы просите. Вы не хотите, чтобы первая ячейка была одинаковой при написании файла PHP? Если да, то как это может быть даже в excel? Вы просто пишете файл с PHP правильно? – dgorti

+0

@dgorti Я включаю excel, потому что этот код экспортируется как excel '.csv'. Приведенная выше диаграмма является примером excel с дублирующим именем группы –

+0

Нет, это не так. Ваш код не экспортирует ничего как excel. Он экспортирует в CSV, который * может * быть открыт excel. Но csv - это общий формат, и ваш код ничего не делает с excel. SO нет фильтров для применения. Вам нужно решить, как вы хотите написать файл csv. – dgorti

ответ

1

Добавьте этот код непосредственно перед foreach ($data as $row) и после uasort($data, function($a, $b):

for($i = count($data) - 1; $i > 0; $i--) { 
    if($data[$i][0] === $data[$i - 1][0]) { 
     $data[$i][0] = ""; 
    } 
} 
+0

О, спасибо большое. Ты действительно спас меня –

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