<?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?
答案 0 :(得分:0)
那是因为你的结果中的第一列可能是while ( !feof (file) )
,当它存储在xls中时,前面的零会被修剪。您可能希望在写入之前将数字转换为number
以防止这种情况,例如:
string
或(string) $key
这将为您提供字符串值。
答案 1 :(得分:0)
html文件的MS Excel导入程序会将数字视为数字,并将默认数字样式应用于它们。如果要将数值视为字符串,则要么创建本机格式BIFF(xls)或OfficepenXML(xlsx)文件,这将允许您设置样式,或将值设置为字符串,或将其视为公式,例如:
="000045"
这会在单元格中显示为000045
,但它会显示为编辑栏中的公式