Я экспортирую php-массивы в Excel, используя XLSXWriter
,
$data = array(
array('id' => 0, 'name' => 'John Doe'),
array('id' => 1, 'name' => 'Jane Doe'),
array('id' => 2, 'name' => 'Will Smith'),
);
$writer = new XLSXWriter();
$writer->writeSheet($data);
$writer->writeToFile('path/and/filename.xlsx');
Он выводит в Excel, как это:
0 | John Doe
1 | Jane Doe
2 | Will Smith
Это нормально, но мне также нужны ключи массива в первой строке:
id | name
2 | Will Smith
0 | John Doe
1 | Jane Doe
2 | Will Smith
Итак, я сделал это:
$headings = array_keys($data[0]);
array_unshift($data,$headings);
Это работает, но есть ли лучший способ?
Как насчет writeSheetRow
$data = array(
array('id' => 0, 'name' => 'John Doe'),
array('id' => 1, 'name' => 'Jane Doe'),
array('id' => 2, 'name' => 'Will Smith'),
);
$writer = new XLSXWriter();
$writer->writeSheetRow('Sheet1',['id','name']);
$writer->writeSheetRow('Sheet1',end($data));
$writer->writeSheet($data);
$writer->writeToFile('path/and/filename.xlsx');
Выход
id | name
2 | Will Smith
0 | John Doe
1 | Jane Doe
2 | Will Smith
Сначала добавьте последнюю строку, а затем добавьте весь массив в файл.
Надеюсь, это работает.
Других решений пока нет …