[英]How can I properly format a CSV file in PHP for an import into Excel?
我正在嘗試從生成 CSV 文件的 PHP 導出數據。 但是,當我將其導入 Excel 時,它看起來像這樣:
這是我的 php 代碼:
<?php
if($error == '')
{
$file_open = fopen("Sortering_formulier.csv", "a");
$rows = count(file("Sortering_formulier.csv"));
if($rows > 1)
{
$rows = ($rows - 1) + 1;
}
$form_data = array(
'sr_no' => $rows,
'auditeurso' => $auditeurso,
'datum' => $datum,
'zone' => $zone,
'textso01' => $textso01,
'ok' => $ok,
'results' => $results,
'okk' => $okk,
'okc' => $okc,
'comment' => $comment
);
fputcsv($file_open, $form_data);
$error = '<label class="text-success">Thank you for filling in the Sorting form</label>';
$auditeurso = '';
$datum = '';
$zone = '';
$textso01 = '';
$ok = '';
$results = '';
$okk = '';
$okc = '';
$comment = '';
}
}
?>
首先,您需要了解 CSV 文件的工作原理。 CHS 文件只是一個文本文件,每行都有逗號分隔值。 當您嘗試將 CSV 文件導入 Excel/電子表格時。 他們將每一行讀取為一行,並將每個逗號分隔的值排列到每行的列中。 現在您在代碼中所做的是,以錯誤的方式將數組傳遞給putcsv()
方法。 看看你傳遞的數組,
$form_data = array(
'sr_no' => $rows,
'auditeurso' => $auditeurso,
'datum' => $datum,
'zone' => $zone,
'textso01' => $textso01,
'ok' => $ok,
'results' => $results,
'okk' => $okk,
'okc' => $okc,
'comment' => $comment
);
在您的代碼中,您將關聯數組傳遞給putcsv()
函數,而您需要將多維數組傳遞給該函數。 在數組中,您傳遞數組的每個元素都被視為每列的單個值,這就是您在 Excel 中獲得一些混亂文本的原因。 您可以嘗試以這種格式傳遞數組,
$form_data = array(
['sr_no', 'auditeurso', 'datum', 'zone', 'textso01', 'ok', 'results', 'okk', 'okc', 'comment'], /* this represent the column headers in the Excel*/
[$rows, $auditeurso, $datum, $zone, $textso01, $ok, $results, $okk, $okc, $comment]
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.