如何将SQL中的第一列更改为文本格式为XLS?

时间:2017-01-13 22:52:00

标签: php mysql sql excel mysqli

    <?php

    require '../config.php';
    error_reporting(0);

    if (!is_admin()) redirect('../login.php');


    $qry = "SELECT * FROM siswa";
    $s = mysqli_query($db,$qry);

// rename file xls
$filename = "export_data_" . date('Ymd') . ".xls";

// Fungsi header dengan mengirimkan raw data excel
header("Content-type: application/vnd-ms-excel");

// Mendefinisikan nama file ekspor "hasil-export.xls"
header("Content-Disposition: attachment; filename='$filename'");
echo "<table border='1'>";

$i = 0;
while($row = $s->fetch_assoc())
{
    if ($i == 0) {
      $i++;
      echo "<tr>";
      foreach ($row as $key => $value) {
        echo "<th>" . $key . "</th>";
      }
      echo "</tr>";
    }
    echo "<tr>";
    foreach ($row as $value) {
      echo "<td>" . $value . "</td>";
    }
    echo "</tr>";
}
echo "</table>";
mysqli_close($db);
?>

我有脚本,但是如果第一列&#34; 0000045&#34;中有文本值,那么它将只是&#34; 45&#34;不是&#34; 0000045&#34;。我希望这个价值仍然是&#34; 0000045&#34;不是&#34; 45&#34;。如何将SQL中的第一列更改为文本格式为XLS?

2 个答案:

答案 0 :(得分:0)

那是因为你的结果中的第一列可能是while ( !feof (file) ),当它存储在xls中时,前面的零会被修剪。您可能希望在写入之前将数字转换为number以防止这种情况,例如:

string(string) $key

这将为您提供字符串值。

答案 1 :(得分:0)

html文件的MS Excel导入程序会将数字视为数字,并将默认数字样式应用于它们。如果要将数值视为字符串,则要么创建本机格式BIFF(xls)或OfficepenXML(xlsx)文件,这将允许您设置样式,或将值设置为字符串,或将其视为公式,例如:

="000045"

这会在单元格中显示为000045,但它会显示为编辑栏中的公式