当前位置: 首页 > 知识库问答 >
问题:

打开由PHP创建的CSV文件

丁经略
2023-03-14

我在PHP中使用fputcsv创建了一个CSV文件。文件创建成功,我可以在MacOS中打开文件,没有问题。(我在MacOS中使用数字)。问题是在微软的Excel中,它将所有行显示为合并的一列。

我在代码中将分隔符设置为“;”。

当我按照Microsoft文档中的说明检查语言和区域设置时,分隔符也是“;”。

我还应该检查什么?非常感谢。

共有2个答案

松涵容
2023-03-14

下面的方法似乎对我很有用。微软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(...)的第三个参数来设置分隔符。
霍鸣
2023-03-14

这个标题将允许正确显示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";

你可以使用这个标题

 类似资料:
  • 问题内容: 我想创建一个csv文件,但是当我运行代码时,它返回一个空白页,没有csv文件。我使用PHP5。我使用以下代码: 谢谢! 问题答案: 其空白,因为您正在写信。您应该写到using 代替,还应该发送标头信息以表明它是csv。 例

  • 我试着用protage软件打开它。会打开的。但是,里面没有类可以看到。为了在Protage中查看我生成的本体,我需要在这段代码中更改哪些内容?

  • 问题内容: 我在MySQL数据库中有数据。我正在向用户发送URL,以将其数据作为CSV文件输出。 我已经通过电子邮件发送了链接,MySQL查询等内容。 当他们单击链接时,如何显示弹出窗口以从MySQL下载带有记录的CVS? 我已经掌握了所有信息以获取记录。我只是看不到如何让PHP创建CSV文件并让他们下载扩展名为.csv的文件。 问题答案: 尝试: 等等 编辑:这是我用来选择性编码CSV字段的代码

  • 记事本++能够毫无问题地打开文件。我做错了什么? 更新:在JD的回答后,我尝试了以下内容: 仍然没有运气--现在我也可以在Excel中看到BOM(作为grabage)--我也尝试使用unicodecsv和其他一些选项,但再次没有成功:(

  • 我有一个错误:PHP无法打开流:打开的文件太多。 我在这里查看了stackoverflow的各种答案,但我无法解决这个问题。我主要尝试增加最大打开文件数的限制: 我已编辑/等/安全/限制。conf,其中我指定了: 保存并注销/重新启动该框后,命令: 仍打印出1024个。我不知道为什么这没有效果,我想这就是我得到php错误的原因。如果需要,我可以粘贴整个文件或任何其他配置文件。我使用的是PHP 5.

  • 我对Spark和Scala是新手。我们将广告事件日志文件格式化为CSV,然后使用PKZIP进行压缩。我已经看到了许多关于如何使用Java解压缩压缩文件的示例,但是如何使用Scala for Spark来实现这一点呢?我们最终希望从每个传入文件中获取、提取并加载数据到Hbase目标表中。也许这可以用HadooprDD来完成吗?在这之后,我们将引入Spark streaming来监视这些文件。