PHP экспорт в CSV и открытие в Excel без использования мастера импорта текста - PullRequest
0 голосов
/ 17 октября 2018

Это глупо и ненужно, но также и трата времени, так как я делаю это каждый день.Но мне интересно, существует ли способ экспорта данных с использованием PHP в CSV, который не требует использования мастера импорта текста при открытии файла в Excel.

В настоящее время мой код выглядит так, как мне кажетсябыть довольно стандартным везде, где я смотрю:

header("Content-type: text/csv");
header('Content-Disposition: attachment;  filename=exported_shipments_'.date("Ymd").'.csv');
header("Pragma: no-cache");
header("Expires: 0");

echo "name" . "\t";
echo "address_1" . "\t";
echo "address_2" . "\t";
echo "city" . "\t";
echo "province_code" . "\t";
echo "postal_code" . "\t";
echo "country_code" . "\t";
echo "phone" . "\t";
echo "package_contents" . "\t";
echo "description" . "\t";
echo "value" . "\t";
echo "value_currency" . "\t";
echo "order_store" . "\t";
echo "order_id" . "\t";
echo "package_type" . "\t";
echo "size_x" . "\t";
echo "size_y" . "\t";
echo "size_z" . "\t";
echo "size_unit" . "\t";
echo "weight" . "\t";
echo "weight_unit" . "\t";
echo "postage_type" . "\t";
echo "signature_requested" . "\t";
echo "insurance_requested" . "\t";
echo "ship_date" . "\t";
echo "\n";

И так далее.

Могу ли я что-нибудь сделать, чтобы Excel осознал, что я хочу, чтобы он был разделен сразу вместо использования мастера?

1 Ответ

0 голосов
/ 17 октября 2018

Вы используете табуляцию, а не запятую для разделения CSV.Вы также можете принудительно установить Content-Type на application / vnd.ms-excel и установить расширение на .xls , оно откроется в Excel иавтоматически импортировать CSV.

Вы можете использовать этот код для этого:

<?php
header ( "Content-type: application/vnd.ms-excel");
header ( "Content-Disposition: attachment; filename=exported_shipments_" . date ( "Ymd") . ".xls");
header ( "Pragma: no-cache");
header ( "Expires: 0");

$data = array ();
$data[] = "name";
$data[] = "address_1";
$data[] = "address_2";
$data[] = "city";
$data[] = "province_code";
$data[] = "postal_code";
$data[] = "country_code";
$data[] = "phone";
$data[] = "package_contents";
$data[] = "description";
$data[] = "value";
$data[] = "value_currency";
$data[] = "order_store";
$data[] = "order_id";
$data[] = "package_type";
$data[] = "size_x";
$data[] = "size_y";
$data[] = "size_z";
$data[] = "size_unit";
$data[] = "weight";
$data[] = "weight_unit";
$data[] = "postage_type";
$data[] = "signature_requested";
$data[] = "insurance_requested";
$data[] = "ship_date";
$fp = fopen ( "php://output", "w");
fputcsv ( $fp, array_values ( $data), ",", "\"");
fclose ( $fp);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...