簡體   English   中英

打開PHP創建的CSV文件

[英]Opening a CSV file created by PHP

我在PHP中使用fputcsv創建一個CSV文件。 文件創建成功,我可以在MacOS中打開文件沒有問題。 (我在MacOS中使用Numbers)。 問題出在Microsoft Excel中,它將所有行顯示為合並的單個列。

我將分隔符設置為“;” 在代碼中。

當我在Microsoft文檔中檢查語言和區域設置時 ,分隔符也是“;”。

我還應該檢查什么? 謝謝。

那么這個標題將允許csv格式正確顯示。

 header('Content-Encoding: UTF-8');
    header('Content-type: text/csv; charset=UTF-8');
    header('Content-Disposition: attachment; filename=filename.csv');
    echo "\xEF\xBB\xBF";

您可以使用此標頭

以下方法似乎對我有用。 Microsoft Excel完美地打開它。

$filePath = '/home/user/';
$filename = 'test.csv';

$df = fopen($filePath.$filename, 'w');
fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($df, $dataColumns);
foreach ($dataArray as $dataRow) {
    fputcsv($df, $dataRow);
}
fclose($df);

// Output csv
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename='.$filename);
header("Cache-Control: no-store, no-cache");
readfile($filePath.$filename);

筆記

  • fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF)); 寫文件頭以獲得正確的編碼。
  • 您可以使用fputcsv(...)的第三個參數來設置分隔符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM