Как объединить клетки в Excel с помощью PHP? - PullRequest
1 голос
/ 09 января 2010

используя php я экспортировал отчет в Excel. Но застрял в объединяющихся ячейках. Я хочу объединить первые 10 ячеек, чтобы отобразить название компании. Переменная с названием компании находится в одной ячейке, я пыталась объединить ячейки, но я не могу ...

Ответы [ 2 ]

1 голос
/ 09 января 2010

Я использовал эту функцию для экспорта,

, где переменная $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.

0 голосов
/ 28 мая 2014

Вы не создаете файл Excel, вы создаете файл CSV (в данном случае это разделенная табуляцией), и этот формат НЕ поддерживает какой-либо формат (шрифт, цвет, даже объединение ячеек не вариант). ) .... и вы даже не используете встроенную в PHP функцию fputcsv () для этого: (

Простое присвоение файлу расширения .xls не делает его файлом Excel. MS Excel способен читать файлы CSV, но некоторые версии Excel на самом деле предупреждают вас о том, что формат при загрузке неверный.

Создайте правильный файл Excel BIFF или OfficeOpenXML, используя одну из множества доступных библиотек (например, PHPExcel), и тогда вы сможете установить форматирование, например, цвета фона ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...