我正试图使用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;
?>
您不是在创建Excel电子表格,而是在创建CSV文件,这只是MS Excel能够导入的文件格式。CSV文件本质上没有格式,它们只是原始数据。如果需要格式化,则需要创建一个真正的本机格式Excel文件(旧的BIFF格式.xls
文件或新的OfficeOpenXML格式.xlsx
文件)。。。。要做到这一点,您真的想使用许多PHP库中的一个来创建本地格式的Excel文件,例如PHPExcel(无论您是否愿意),否则您将不得不花费大量时间编写自己的文件。
作为参考,PHP有一个内置的fputcsv()函数,可以用来正确创建csv文件,因此您不需要使用当前使用的"自制程序"