У меня есть действие, которое возвращает файл Excel. Доступ к этому маршруту в браузере автоматически загрузит мой файл Excel.
Я написал тест для этого действия, но все, что я могу утверждать, это данные из заголовков. Кроме того, тест выводит ответ прямо на консоль с текстом вроде w֑m�J�9���9�e�줽o��
,
Есть ли способ сделать утверждения на данных, которые поступают из этого файла Excel? Файл не сохраняется, в ответ отображается только его содержимое.
Я использую Symfony2.
РЕДАКТИРОВАТЬ
Я нашел способ прочитать эти данные, сохранив ответ в выходном буфере, сохранив содержимое в файле .xlsx, преобразовав его в файл .csv и получив оттуда содержимое.
ob_start();
$this->client->request(
'GET',
'/myUrl',
array(),
array(),
array()
);
$content = ob_get_clean();
file_put_contents('MyFile.xlsx', $content);
$reader = \PHPExcel_IOFactory::createReader('Excel2007');
$excel = $reader->load('MyFile.xlsx');
$writer = \PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->save('MyFileCsv.csv');
$newContent = fgetcsv(fopen("MyFileCsv.csv", "r"));
Вот только эскиз. Я остановился здесь, не пытался читать весь контент и делать заявления, но я уверен, что это можно сделать таким образом.
Ах, не забудьте удалить файлы после.
Вы можете использовать PHPexcel (можно найти здесь: PHPExcel) проанализировать ваш Excel и заявить о данных, собранных phpexcel
Других решений пока нет …