Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中正确格式化CSV文件以导入Excel?_Php_Excel_Csv_Import - Fatal编程技术网

如何在PHP中正确格式化CSV文件以导入Excel?

如何在PHP中正确格式化CSV文件以导入Excel?,php,excel,csv,import,Php,Excel,Csv,Import,我正在尝试从PHP导出数据,生成一个CSV文件。但是,当我将其导入Excel时,它看起来是这样的: 这是我的php代码: <?php if($error == '') { $file_open = fopen("Sortering_formulier.csv", "a"); $rows = count(file("Sortering_formulier.csv")); if($rows > 1) {

我正在尝试从PHP导出数据,生成一个CSV文件。但是,当我将其导入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]
);

$form\u数据从哪里来?你想实现什么?我将在这里给出我的全部php代码,现在是Excel?好的,一步一步。您是否正在尝试将PHP生成的CSV导入Excel?我希望这张图片能够帮助您理解我的意思。我是新来的。是的,来自联系人表单。注意:第115行C:\xampp\htdocs\Angulr-421-N-WORK-APP\html\form_sorting.php中的数组到字符串转换