Pastebin

Paste #2553: PHPExcel-example

< previous paste - next paste>

Pasted by chrivers

Download View as text

    function formatXLSReport($data, $fields, $specificFields = array())
    {
        require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';

        $sheet1 = array();
        $rows = explode("\n", $this->formatCSVReport($data, $fields, $specificFields));
        foreach($rows as $row)
            $sheet1[] = str_getcsv($row);

        $pe = new PHPExcel();

        $pe->getProperties()
          ->setCreator("Leadtracker")
          ->setTitle("Leadtracker report");

        $format_und = new PHPExcel_Style();
        $format_reg = new PHPExcel_Style();

        $format_und->applyFromArray(
          array(
            'borders' => array(
              'bottom'	=> array('style' => PHPExcel_Style_Border::BORDER_THIN),
            )
          ));
        $font = $format_und->getFont();
        $font->setBold(true);
        $font->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK);
        $font->setName("Arial");
        $font->setSize(8);

        $font = $format_reg->getFont();
        $font->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK);
        $font->setName("Arial");
        $font->setSize(8);

        $sheet = $pe->setActiveSheetIndex(0);

        $sheet->setTitle("Rapport");
        $sheet->setSharedStyle($format_und, "A1:Q1");
        $sheet->setSharedStyle($format_reg, "A2:Q100");

        $rowcount = count($sheet1);
        $colcount = count($sheet1[0]);

        for ($j = 0; $j < $rowcount; $j++)
        {
          for ($i = 0; $i < $colcount; $i++)
          {
            if (isset($sheet1[$j][$i]))
            {
              $sheet->setCellValueByColumnAndRow($i, $j+1, $sheet1[$j][$i]);
            }
          }
        }

        $writer = PHPExcel_IOFactory::createWriter($pe, 'Excel5');
        ob_start();
        $writer->save("php://output");
        return ob_get_clean();
    }

New Paste


Do not write anything in this field if you're a human.

Go to most recent paste.