如何使用PHP合并excel中的单元格?

时间:2010-01-09 11:44:11

标签: php excel

使用php我在excel中导出报告但是在合并单元格中陷入困境。 我想将前10个单元格合并为显示公司名称。 具有公司名称的变量位于一个单元格中,尝试合并单元格,但我不知道......

2 个答案:

答案 0 :(得分:1)

我用这个功能导出,

其中$query变量包含作为参数发送的mysql查询, 并在$fieldname变量中,显示标题的字段数组。

一切正常,n正常工作。 我不知道的一件事是合并细胞......

function to_excel_export($query,$fieldName)
{

 $filename = date('d-m-Y');
 $headers = ''; 
 $data = '';
 $obj =& get_instance();
 if ($query->num_rows() == 0)
 {
      echo '<p>The table appears to have no data.</p>';
 }
 else
 {
     for($i=0;$i<sizeof($fieldName);$i++)
     {
         $headers .= $fieldName[$i] . "\t";
     }

      foreach ($query->result() as $row)
      {
           $line = '';
           foreach($row as $value)
           {                                            
                if ((!isset($value)) OR ($value == ""))
                {
                   $value = "\t";
                } 
                else 
                {
                   $value = str_replace('"', '""', $value);
                   $value = '"' . $value . '"' . "\t";
                }
                $line .= $value;
           }
           $data .= trim($line)."\n";
      }

      $data = str_replace("\r","",$data);
      header("Content-type: application/x-msdownload");
      header("Content-Disposition: attachment; filename=$filename.xls");

      $compName = 'C O M P A N Y - N A M E ';
      echo $compName."\n\n";
      echo $headers."\n".$data; 
 }

}

$compName = 'C O M P A N Y - N A M E ';
      echo $compName."\n\n";

如何合并单元格以显示$compName变量中的名称。

答案 1 :(得分:0)

您没有创建Excel文件,您正在创建CSV文件(在这种情况下分隔标签),并且该格式不支持任何类型的格式(字体,颜色,甚至合并单元格isn& #39;是一个选项)....你甚至没有使用PHP的内置fputcsv()函数来实现这一目标:(

简单地为文件提供.xls的扩展名并不能使其成为Excel文件。 MS Excel能够读取CSV文件,但某些版本的Excel实际上会警告您加载时格式不正确。

使用可用的许多库之一(例如PHPExcel)创建正确的Excel BIFF或OfficeOpenXML文件,然后您就可以设置格式化,例如单元格背景颜色。