PHP: IE11 Открыть отформатированный CSV-файл в Excel

Поэтому у меня проблемы с открытием .csv файла, который загружается с помощью IE11, и если я использую chrome, mozilla и т. Д., Файл отформатирован хорошо.

Случай: в php я генерирую список и экспортирую как .csv. Если я скачаю этот файл с экс. Chrome и открыть в Excel, каждый столбец отформатирован хорошо, но тот же процесс в IE11 и вывод неформатированный текст.

Ниже вы можете найти код и результаты:

Вот код php
введите описание изображения здесь

Вот файл .csv (загружается с помощью Chrome, Mozilla, Opera, Safari)
введите описание изображения здесь

А вот и выход из IE11

введите описание изображения здесь

У кого-нибудь есть идеи, как решить эту проблему?

0

Решение

Увидеть этот ответ с похожей проблемой.

Попробуйте использовать эти заголовки:

  header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"exportevent.csv\";" );
header("Content-Transfer-Encoding: binary");

Я думаю, что тип содержимого октет-поток заставляет IE загружать
файл.

1

Другие решения

Этот код подходит мне

 // fetching data from database
$products = Product::undeletedProducts();
// heading in array
$columns = array('Code','Place','Country','Price');
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;filenameproduct_list_'.time().'.csv');
// file creation with write mode
$output = fopen('php://output', 'w');
// putting headings in csv file
fputcsv($output, $columns);
foreach($products as $product)
{
$outRow = [];
// for dynamic columns
foreach($columns as $column)
{
array_push($outRow,$user->{$column});
}
fputcsv($output, $outRow);
}
0

По вопросам рекламы [email protected]