1

我创建了一个表单,并能够在提交时将数据添加到 CSV。但是我的代码使得 csv 文件由逗号分隔,因此当我在表单数据中添加逗号时,php 代码将其分隔为另一个条目(列)。

这是我的php代码:

<?php 
$filename = "data.csv";
$string = $_POST['element_1'].",".$_POST['element_2'].",".$_POST['element_3'].",".$_POST['element_4_1']."-".$_POST['element_4_2']."-".$_POST['element_4_3'].",".$_POST['element_5']."\n";
if (file_exists($filename)) {
  $file = fopen($filename, "a");
  fwrite($file, $string);
} else {
   $file = fopen($filename, "a");
   fwrite($file, '"Name","Phone","No. of persons","Date","Venue"\n');
   fwrite($file, $string);
}
fclose($file);
?>

在上面的代码中,Venue 有时会使用“逗号”。但是该代码将 Venue 数据分成新列。

那么,除了 CSV 或任何代码噱头之外,还有其他方法可以将数据输入到 Excel 表中吗?

4

1 回答 1

2

您可以使用fputcsvfgetcsv让您的生活更轻松。

fputcsv让您指定所需的分隔符和外壳。最大的区别是您必须将字段作为数组传递:数组的每个值都是 csv 行中的列值。

因此,给定一个$fields包含您的 CSV 行值的数组:

$file = fopen( 'data.csv', 'a' );

fputcsv( $file, $fields, ',', '"' );

fclose( $file );

重要提示:标志fopen必须是a才能附加到文件中。如果您使用w,您将覆盖以前的内容。

于 2013-10-27T00:52:06.973 回答