繁体   English   中英

将数据从mysql表导出到.csv文件

[英]Exporting data from mysql table to a .csv file

我有一个mysql表,其中存储用户的手机号码,现在我只想使用php将这些号码导出到.csv文件,并且我不想在每个号码的末尾使用逗号。 现在假设我的表中存储了接下来的3个数字:

123456789
+966123456789  
00966123456789

现在,如果我使用下一个代码:

$result = mysql_query("SELECT cellphone FROM user");
if ($result) {
    while ($row = mysql_fetch_array($result)) {
        $cellphones .= $row["cellphone"] . ",\r\n"; //note the comma here
    }
}

$filename = "cellphones_" . date("Y-m-d_H-i");
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=" . $filename . ".csv");
print $cellphones;
exit;

我将得到一个.csv文件,其中包含如下数字:

+966123456789,
00966123456789,
123456789,

但是,如果我使用相同的代码但没有这样的逗号:

    $cellphones .= $row["cellphone"] . "\r\n";

代替:

    $cellphones .= $row["cellphone"] . ",\r\n"; //note the comma here

那么.csv文件中的数字将是:

9.66123E+11
9.66123E+11
123456789

那么,怎么了?如何使数字正确显示而没有逗号?

说明

逗号被视为每一行中值的一部分,因此,MS Excel导入时会将数据视为字符串。...意味着它将按“原样”存储在单元格中。 如果没有逗号,MS Excel将使用通用格式将值视为数字,该格式不显示前导零,并且如果数字超过定义的位数,则转换为科学格式。

为了始终将值视为字符串,且不使用逗号,请将值用双引号引起来。

$cellphones .= '"' . $row["cellphone"] . '"' . "\r\n";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM