使用php格式化excel表

时间:2016-01-04 11:13:50

标签: php excel

我正在尝试使用数据库中的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;
?>

1 个答案:

答案 0 :(得分:0)

您没有创建Excel电子表格,而是创建了一个CSV文件,它只是MS Excel能够导入的文件格式。 CSV文件本质上没有格式,它们只是原始数据。如果你想要格式化,那么你需要创建一个真正的原生格式Excel文件(较旧的BIFF格式DispatchesJobs文件,或较新的OfficeOpenXML格式.xls文件)....为此,你我真的想使用众多PHP库中的一个来创建原生格式的Excel文件,例如PHPExcel(无论你是否愿意),否则你将不得不花费大量时间自己编写。

供参考,PHP有一个内置的fputcsv()函数,可用于正确创建csv文件,因此您不需要使用当前正在使用的“自制软件”