使用逗号问题将数据从PHP导出到Excel

use*_*289 1 php excel

我的数据库:

我的数据库

由于数据库中"description"字段中的逗号,我将数据导出到excel时遇到问题.

这是我的代码:

<?php 
include 'database.php';
if (isset($_POST['submit'])){
    $filename = 'uploads/'.strtotime("now").'.csv';
    $fp = fopen($filename, "w");
    $sql = "SELECT * FROM data";
    $linkSql = mysqli_query($link,$sql) or die(mysqli_error($link));
    $row = mysqli_fetch_assoc($linkSql);

    $seperator ="";
    $comma = "";
    foreach ($row as $name => $value) {
        $seperator .= $comma . '' .str_replace('','""',$name);
        $comma = ",";
    }
    $seperator .="\n";
    fputs($fp, $seperator);

    mysqli_data_seek($linkSql, 0);

    while($row = mysqli_fetch_assoc($linkSql)){
    $seperator ="";
    $comma = "";
    foreach ($row as $name => $value) {
        $seperator .= $comma . '' .str_replace('','""',$value);
        $comma = ",";
    }
    $seperator .="\n";
    fputs($fp, $seperator);
    }        fclose($fp);
} ?>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form method="post" action="export.php">
            <input type="submit" name="submit" value="export">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我导出到excel后的数据:

导出到excel后的数据.

Ray*_*Ray 5

问题是你正在不必要地实施一些事情,并且必须在你已经解决之前解决其他所有繁琐的问题.

有一个很棒的内置函数fputcsv(),可以处理分隔符和附件,以便很好地转义内容字段.

这是php文档页面的链接:http://php.net/manual/en/function.fputcsv.php

  • 学习它
  • 爱它
  • 住它