【问题标题】:Format column csv from export php-mysqli从导出 php-mysqli 格式化列 csv
【发布时间】:2016-04-01 08:29:03
【问题描述】:

下面的代码导出一个包含多列的 .csv 文件。 “PRET”列是通用格式,它包含格式为 xx.xx 的产品价格。我想把我的价值观变成xx,xx。如何格式化文本类型的 PRET 列,或者我应该替换“。”导出文件时带“,”?

<?php
// call export function
exportMysqlToCsv('export_stoc.csv');

// export csv
function exportMysqlToCsv($filename = 'export_stoc.csv')
{
$conn = dbConnection();
// Check connection
if ($conn->connect_error) {
         die("Connection failed: " . $conn->connect_error);
}
//v

$sql_query = "SELECT
      produse.DENUMIRE,
      clase.CLASA,
      furnizori.NUME_J,
      furnizori.NUME_F,
      stoc.CANTITATE,
      produse.PRET,
      produse.VALUTA,
      stare.STARE
FROM clase
JOIN produse ON produse.ID_CLASA = clase.ID
JOIN furnizori ON produse.ID_FURNIZOR = furnizori.ID
JOIN stoc ON stoc.ID_PRODUS = produse.ID
JOIN stare ON stare.ID = stoc.ID_STARE;
     //execute this sql and fetch your results as needed

// Gets the data from the database
$result = $conn->query($sql_query);
$f = fopen('php://temp', 'wt');
$first = true;
while ($row = $result->fetch_assoc()) {
         if ($first) {
                 fputcsv($f, array_keys($row), ';')
                 $first = false;
         }
         fputcsv($f, $row, ';');
} // end while

$conn->close();
$size = ftell($f);
rewind($f);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: $size");
// Output to browser with appropriate mime type, you choose ;)
header("Content-type: text/x-csv");
header("Content-type: text/csv");
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$filename");
fpassthru($f);
exit;
}
// db connection function
function dbConnection(){
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "bd";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
return $conn;
}

?>

谢谢!

【问题讨论】:

    标签: php csv mysqli


    【解决方案1】:

    CSV 中没有“格式”; CSV 只是由一些分隔符分隔的纯文本。

    所以...

    我应该替换“。”导出文件时使用 ","。

    ...是的。

    【讨论】:

    • 这不会在逗号分隔文件中添加另一个逗号。这可能是个坏主意
    • 嗯,是的,如果你真的使用逗号来分隔。通常使用其他分隔符,例如分号或制表符。或者,您可以尝试将您的值放在引号中,以防止逗号被识别为分隔符;这取决于解析输出的程序的能力。
    • 我需要格式化文本列,替换excel中的逗号
    • 如果目标是 Excel,请查看 phpExcel 库。有了它,您可以设置列的格式。并且实际写.xlsx文件而不是csv格式文件
    • 我第一次尝试在 .xlsx 中导出,但出现错误(文件损坏),我更喜欢导出 .csv。最简单的选择仍然是我的文本格式的专栏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2017-06-13
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多