我正在尝试使用数据库中的php下载报告。我成功获取数据,但我坚持格式化单元格。任何人都可以指导我如何格式化Excel吗?
我不能使用任何第三方插件,如PHPExcel或Spread Sheet Writer。
我尝试在php中连接html代码,但没有用。
感谢任何帮助。
<?PHP
session_start();
if(isset($_SESSION['desion'])){$data=$_SESSION['desion'];}else{$data="";};
function cleanData(&$str)
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
for($i=0;$i<count($data);$i++){
unset($data[$i]['comid']);
}
header("Content-Disposition: attachment; filename= DecisionMaker.xls");
header("Content-Type: application/vnd.ms-excel");
$flag = false;
foreach($data as $row) {
if(!$flag) {
// display field/column names as first row
echo implode("\t", array_keys($row)) . "\r\n\n";
$flag = true;
}
array_walk($row, 'cleanData');
echo implode("\t", array_values($row)) . "\r\n";
}
exit;
?>
答案 0 :(得分:0)
您没有创建Excel电子表格,而是创建了一个CSV文件,它只是MS Excel能够导入的文件格式。 CSV文件本质上没有格式,它们只是原始数据。如果你想要格式化,那么你需要创建一个真正的原生格式Excel文件(较旧的BIFF格式DispatchesJobs
文件,或较新的OfficeOpenXML格式.xls
文件)....为此,你我真的想使用众多PHP库中的一个来创建原生格式的Excel文件,例如PHPExcel(无论你是否愿意),否则你将不得不花费大量时间自己编写。
供参考,PHP有一个内置的fputcsv()函数,可用于正确创建csv文件,因此您不需要使用当前正在使用的“自制软件”