Php 正在尝试使用excel mime导出前导为0的特定SQL数据
[这是输出] 试图通过循环数组将SQL数据导出为excel文件,但未能导出数据的前导0 我曾试图在“内爆”中添加一个引号,但仍然不起作用Php 正在尝试使用excel mime导出前导为0的特定SQL数据,php,phpexcel,Php,Phpexcel,[这是输出] 试图通过循环数组将SQL数据导出为excel文件,但未能导出数据的前导0 我曾试图在“内爆”中添加一个引号,但仍然不起作用 header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); $user_query = mysqli_query($conn,$sql); //echo $user_query; // W
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");
$user_query = mysqli_query($conn,$sql);
//echo $user_query;
// Write data to file
$flag = false;
while ($row = mysqli_fetch_assoc($user_query)) {
if (!$flag) {
// display field/column names as first row
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
echo implode("\t", =array_values($row)) . "\r\n";
}
期望使用单引号“\t'”内爆,但仍然无法
导出前导0
像这样更改
内爆
,使每个值都用单引号引起来:
echo "'".implode("'\t'", array_values($row)) . "'\r\n";
更新 仅引用前导为零的字段:
echo implode("\t", array_map('leadZero', $row))."\r\n";
function leadZero($element)
{
return substr(trim($element),0,1) === "0" ? "'".$element."'" : $element;
}
能否显示
$row
输出?您在$row
中拥有的内容,请停止与内爆
的混淆,并首先使用fputcsv
。(例如,如何使用后者直接下载,而不是写入实际文件,请参见)@misorude我认为不需要CSV。他使用的是XLS头。@BramVerstraten“他使用的是XLS头”-是的,但实际的数据格式仍然非常类似CSV。您不局限于使用该函数创建“经典”CSV数据,它可以使用任何字符作为分隔符和附件。(但它不会将前导0的值用引号括起来-也许我会使用快速的数组\u walk
)显示数组\u值($row)
的内容或一行生成的内容。您好,您的代码工作正常,但不是我期望的方式。是否仍然可以只针对前导为0的数据将单引号放在其中?前导为0的字段仍然存在,但我收到消息“未初始化字符串偏移量:0”好的,用substr()更改字符串偏移量运算符{}