Ejemplo n.º 1
2
    public function getReport($id_report)
    {
        $report = end($this->uri->segments);
        $this->setColNames($id_report);
        $this->params['id_report'] = $id_report;
        $this->params['sidx'] = $this->sortColNames;
        $this->params['colNames'] = $this->colNames;
        $this->params['colModels'] = $this->colModels;
        if ($report == 'prev') {
            $this->template->write_view('content', 'custom_report_query/custom_report_query_preview', $this->params, TRUE);
            $this->template->render();
            // render template
        } else {
            if ($report == 'excel') {
                $nColumn = $this->uri->segment(4);
                $segment = 5;
                $listfield = array();
                for ($i = 1; $i < $nColumn; $i++) {
                    $listfield[] = str_replace("%20", " ", $this->uri->segment($segment));
                    $segment++;
                }
                $sName = $this->uri->segment($segment);
                $segment++;
                $sOrder = $this->uri->segment($segment);
                $rows = $this->custom_report_query_model->get_datas($id_report);
                $result = $this->custom_report_query_model->get_report($id_report, $sName, $sOrder)->result_array();
                $oldIncludePath = get_include_path();
                set_include_path(APPPATH . 'libraries/PHPExcel');
                include_once 'PHPExcel.php';
                include_once 'PHPExcel/Writer/Excel2007.php';
                include_once 'PHPExcel/IOFactory.php';
                if ($report == 'excel') {
                    $ext = 'xls';
                    $header = 'vnd.ms-excel';
                    $obj = 'Excel5';
                    $render = false;
                } else {
                    $rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
                    $rendererLibrary = 'tcPDF5.9';
                    $rendererLibraryPath = APPPATH . 'libraries/tcpdf';
                    $ext = 'pdf';
                    $header = 'pdf';
                    $obj = 'PDF';
                    $render = true;
                }
                $objPHPExcel = new PHPExcel();
                $objPHPExcel->getProperties()->setTitle("title")->setDescription("description");
                // Assign cell values
                $objPHPExcel->setActiveSheetIndex(0);
                $sheet = $objPHPExcel->getActiveSheet();
                $sheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
                $sheet->setShowGridlines(true);
                foreach ($rows as $row) {
                    $row1 = $row['report_name'];
                    $row2 = $row['req_by'];
                    $row3 = date('d-m-Y');
                }
                $sheet->getRowDimension('1')->setRowHeight(10);
                $sheet->setCellValue('A1', $row1);
                $sheet->setCellValue('A2', $row2);
                $sheet->setCellValue('A3', $row3);
                $char = 65;
                $i = 0;
                foreach ($listfield as $fields) {
                    $sheet->setCellValue(chr($char) . '5', $fields);
                    ${'length' . $i} = strlen($fields);
                    $char++;
                    $i++;
                }
                $char = 65;
                if ($report == 'excel') {
                    for ($j = 0; $j < $i; $j++) {
                        $sheet->getColumnDimension(chr($char))->setAutoSize(true);
                        $char++;
                    }
                }
                $counter = 6;
                foreach ($result as $row) {
                    $char = 65;
                    if ($counter == 6 && $report == 'pdf') {
                        $charX = $char;
                        for ($j = 0; $j < $i; $j++) {
                            if (${'length' . $j} > strlen($row[$listfield[$j]])) {
                                $sheet->getColumnDimension(chr($charX))->setWidth(${'length' . $j} + 4);
                            } else {
                                $sheet->getColumnDimension(chr($charX))->setWidth(30);
                            }
                            $charX++;
                        }
                    }
                    for ($j = 0; $j < $i; $j++) {
                        $sheet->setCellValue(chr($char) . $counter, $row[$listfield[$j]]);
                        $char++;
                    }
                    $counter++;
                }
                if ($render) {
                    if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                        die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' . '<br />' . 'at the top of this script as appropriate for your directory structure');
                    }
                }
                $filename = $row1 . "-" . date('d/m/Y H:i:s') . '.' . $ext . "";
                // Redirect output to a client’s web browser
                header('Content-Type: application/' . $header);
                header('Content-Disposition: attachment;filename="' . $filename . '"');
                header('Cache-Control: max-age=0');
                // Save it as a file
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $obj);
                $objWriter->save('php://output');
                set_include_path($oldIncludePath);
            } else {
                if ($report == 'pdf') {
                    $this->load->library('fpdf');
                    $nColumn = $this->uri->segment(4);
                    $segment = 5;
                    $listfield = array();
                    for ($i = 1; $i < $nColumn; $i++) {
                        $listfield[] = str_replace("%20", " ", $this->uri->segment($segment));
                        $segment++;
                    }
                    $sName = $this->uri->segment($segment);
                    $segment++;
                    $sOrder = $this->uri->segment($segment);
                    $rows = $this->custom_report_query_model->get_datas($id_report);
                    $result = $this->custom_report_query_model->get_report($id_report, $sName, $sOrder)->result_array();
                    foreach ($rows as $row) {
                        $row1 = $row['report_name'];
                        $row2 = $row['req_by'];
                        $row3 = date('d-m-Y');
                    }
                    $html = '';
                    $html .= '<table>
						<tr>
							<td>Nama Laporan</td>
							<td>:</td>
							<td>' . $row1 . '</td>
						</tr>
						<tr>
							<td>Request By</td>
							<td>:</td>
							<td>' . $row2 . '</td>
						</tr>
						<tr>
							<td>Tanggal</td>
							<td>:</td>
							<td>' . $row3 . '</td>
						</tr>
						
					</table>';
                    $row1 . $row2 . $row3;
                    $html .= '<table border="1">
			<tr>';
                    $char = 65;
                    $i = 0;
                    foreach ($listfield as $fields) {
                        $html .= '<td><strong>' . $fields . '</strong></td>';
                        $char++;
                        $i++;
                    }
                    $html .= '</tr>';
                    foreach ($result as $row) {
                        $char = 65;
                        $html .= '<tr>';
                        for ($j = 0; $j < $i; $j++) {
                            $html .= '<td>' . $row[$listfield[$j]] . '</td>';
                            $char++;
                        }
                        $html .= '</tr>';
                    }
                    $html .= '
			</table>';
                    $filename = $row1 . "-" . date('d/m/Y H:i:s') . '.pdf';
                    ini_set('memory_limit', '-1');
                    require_once APPPATH . '/libraries/pdftable/pdftable.inc.php';
                    $p = new PDFTable();
                    $p->AddPage();
                    $p->setfont('times', '', 10);
                    $p->htmltable($html);
                    $p->output($filename, 'I');
                }
            }
        }
    }
Ejemplo n.º 2
0
 public static function pdfExport($data, $headerTitle = [], $headerRGBColor = 'FCFCFC')
 {
     $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF;
     $rendererLibraryPath = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'dompdf' . DIRECTORY_SEPARATOR . 'dompdf';
     if (!\PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
         return false;
     }
     $phpExcel = self::init($data, $headerTitle, $headerRGBColor);
     $objWriter = \PHPExcel_IOFactory::createWriter($phpExcel, 'PDF');
     $objWriter->save('php://output');
     return true;
 }
Ejemplo n.º 3
0
 public static function getBlock()
 {
     session::start();
     $block_path = __DIR__ . '/block/';
     $block_name = str_replace('_class', '', __CLASS__) . '.php';
     self::$block_name = $block_name;
     self::$blocks[$block_name] = ['name' => $block_name, 'path' => $block_path];
     // Create new PHPExcel object
     $xls = new PHPExcel();
     // Устанавливаем индекс активного листа
     $xls->setActiveSheetIndex(0);
     // Получаем активный лист
     $sheet = $xls->getActiveSheet();
     // Подписываем лист
     $sheet->setTitle('Таблица умножения');
     // Вставляем текст в ячейку A1
     $sheet->setCellValue("A1", 'Таблица умножения');
     $sheet->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
     $sheet->getStyle('A1')->getFill()->getStartColor()->setRGB('EEEEEE');
     // Объединяем ячейки
     $sheet->mergeCells('A1:H1');
     // Выравнивание текста
     $sheet->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     for ($i = 2; $i < 10; $i++) {
         for ($j = 2; $j < 10; $j++) {
             // Выводим таблицу умножения
             $sheet->setCellValueByColumnAndRow($i - 2, $j, $i . "x" . $j . "=" . $i * $j);
             // Применяем выравнивание
             $sheet->getStyleByColumnAndRow($i - 2, $j)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
         }
     }
     //Сохранение листа excel в PDF рабочий вариант
     //1. скачать tcpdf, распаковать в classes
     //2. в PHPExcel/Settings строка 49 заменить tcPDF на tcpdf
     //3. далее работающий код
     $rendererLibrary = 'tcpdf';
     $rendererLibraryPath = 'app/classes/' . $rendererLibrary;
     PHPExcel_Settings::setPdfRenderer('tcpdf', $rendererLibraryPath);
     $path = 'files/asdfg1_' . date('i') . '_' . date('s') . '.pdf';
     $objWriter = new PHPExcel_Writer_PDF($xls);
     $objWriter = PHPExcel_IOFactory::createWriter($xls, 'PDF');
     $objWriter->setSheetIndex(0);
     $objWriter->save($path);
     self::$values['path'] = $path;
     //echo
     //controller::call('/main/get_pdf', ['params' => ['path' => 'files/asdfg1.pdf']]);
     return self::show();
 }
Ejemplo n.º 4
0
 public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview)
 {
     require_once 'PHPExcel/Classes/PHPExcel.php';
     require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';
     $absPath = $fileview->toTmpFile($path);
     $tmpPath = \OC_Helper::tmpFile();
     $rendererName = \PHPExcel_Settings::PDF_RENDERER_DOMPDF;
     $rendererLibraryPath = \OC::$THIRDPARTYROOT . '/3rdparty/dompdf';
     \PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
     $phpexcel = new \PHPExcel($absPath);
     $excel = \PHPExcel_IOFactory::createWriter($phpexcel, 'PDF');
     $excel->save($tmpPath);
     $pdf = new \imagick($tmpPath . '[0]');
     $pdf->setImageFormat('jpg');
     unlink($absPath);
     unlink($tmpPath);
     $image = new \OC_Image();
     $image->loadFromData($pdf);
     return $image->valid() ? $image : false;
 }
 public function exportData($filename, $type = 'xlsx')
 {
     if ($type == 'xlsx' || ($type = 'pdf')) {
         if (!is_dir('export')) {
             @mkdir('export', 0777, true);
         }
         if (isset($this->config['table_alias']) && array_key_exists($this->getTable(), $this->config['table_alias'])) {
             $name = $this->config['table_alias'][$this->getTable()];
         } else {
             $name = $this->getTable();
         }
         $path = 'export/' . ($filename == '' ? $name == '' ? uniqid() : $name : $filename);
         if (file_exists($path . '.' . $type)) {
             $path .= '_' . uniqid();
         }
         $path .= '.' . $type;
         $objPHPExcel = new PHPExcel();
         $objPHPExcel->getProperties()->setCreator('User')->setLastModifiedBy('User')->setTitle("Database table dump")->setSubject("Database table dump")->setDescription("Database table dump generated on " . date('Y-m-d , H:i:s', time()))->setKeywords("dump")->setCategory("dumps");
         $objPHPExcel->setActiveSheetIndex(0);
         $objPHPExcel->getActiveSheet()->setTitle(substr($name, 0, 30));
         $column = 0;
         $info = $this->getInfo();
         $objPHPExcel->getActiveSheet()->getStyle('A1:' . chr(65 + count($this->getData()) - 1) . '1')->getFont()->setBold(true);
         foreach ($this->getData() as $title => $lines) {
             if ($info[$title]['width'] != 0) {
                 $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($column)->setWidth($info[$title]['width']);
             }
             if ($info[$title]['height'] != 0) {
                 $objPHPExcel->getActiveSheet()->getColumnDimensionByRow($row)->setHeight($info[$title]['height']);
             }
             if (isset($this->config['column_alias']) && array_key_exists($title, $this->config['column_alias'])) {
                 $title = $this->config['column_alias'][$title];
             }
             $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $title);
             $row = 2;
             foreach ($lines as $line) {
                 $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($column, $row, $line);
                 $row++;
             }
             $column++;
         }
         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
         if ($type == 'xlsx') {
             $objWriter->save('../' . $path);
         } else {
             $rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
             $rendererLibrary = 'tcPDF5.9';
             $rendererLibraryPath = dirname(__FILE__) . '/tcpdf';
             $objPHPExcel->getActiveSheet()->setShowGridLines(false);
             $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
             if (count($this->getData()) < 5) {
                 $pageSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5;
             } else {
                 if (count($this->getData()) < 15) {
                     $pageSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4;
                 } else {
                     if (count($this->getData()) < 25) {
                         $pageSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_PAPER;
                     } else {
                         if (count($this->getData()) < 30) {
                             $pageSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER;
                         } else {
                             $pageSize = PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4;
                         }
                     }
                 }
             }
             $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize($pageSize);
             if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                 die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' . PHP_EOL . 'at the top of this script as appropriate for your directory structure');
             }
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
             $objWriter->setSheetIndex(0);
             $objWriter->save('../' . $path);
         }
         return $path;
     }
     return false;
 }
Ejemplo n.º 6
0
 function product_actions()
 {
     if (!$this->Owner) {
         $this->session->set_flashdata('warning', lang('access_denied'));
         redirect($_SERVER["HTTP_REFERER"]);
     }
     $this->form_validation->set_rules('form_action', lang("form_action"), 'required');
     if ($this->form_validation->run() == true) {
         if (!empty($_POST['val'])) {
             if ($this->input->post('form_action') == 'delete') {
                 foreach ($_POST['val'] as $id) {
                     $this->products_model->deleteProduct($id);
                 }
                 $this->session->set_flashdata('message', $this->lang->line("products_deleted"));
                 redirect($_SERVER["HTTP_REFERER"]);
             }
             if ($this->input->post('form_action') == 'labels') {
                 $currencies = $this->site->getAllcurrencies();
                 $r = 1;
                 $html = "";
                 $html .= '<table class="table table-bordered table-condensed bartable"><tbody><tr>';
                 foreach ($_POST['val'] as $id) {
                     $pr = $this->products_model->getProductByID($id);
                     $html .= '<td class="text-center"><h4>' . $this->Settings->site_name . '</h4>' . $pr->name . '<br>' . $this->product_barcode($pr->code, $pr->barcode_symbology, 30);
                     $html .= '<table class="table table-bordered">';
                     foreach ($currencies as $currency) {
                         $html .= '<tr><td class="text-left">' . $currency->code . '</td><td class="text-right">' . $this->sma->formatMoney($pr->price * $currency->rate) . '</td></tr>';
                     }
                     $html .= '</table>';
                     $html .= '</td>';
                     if ($r % 4 == 0) {
                         $html .= '</tr><tr>';
                     }
                     $r++;
                 }
                 if ($r < 4) {
                     for ($i = $r; $i <= 4; $i++) {
                         $html .= '<td></td>';
                     }
                 }
                 $html .= '</tr></tbody></table>';
                 $this->data['r'] = $r;
                 $this->data['html'] = $html;
                 $this->data['page_title'] = lang("print_labels");
                 $this->data['categories'] = $this->site->getAllCategories();
                 //$this->load->view($this->theme . 'products/print_labels', $this->data);
                 $bc = array(array('link' => base_url(), 'page' => lang('home')), array('link' => site_url('products'), 'page' => lang('products')), array('link' => '#', 'page' => lang('print_labels')));
                 $meta = array('page_title' => lang('print_labels'), 'bc' => $bc);
                 $this->page_construct('products/print_labels', $meta, $this->data);
             }
             if ($this->input->post('form_action') == 'barcodes') {
                 $currencies = $this->site->getAllcurrencies();
                 $r = 1;
                 $html = "";
                 $html .= '<table class="table table-bordered sheettable"><tbody><tr>';
                 foreach ($_POST['val'] as $id) {
                     $pr = $this->site->getProductByID($id);
                     if ($r != 1) {
                         $rw = (bool) ($r & 1);
                         $html .= $rw ? '</tr><tr>' : '';
                     }
                     $html .= '<td colspan="2" class="text-center"><h3>' . $this->Settings->site_name . '</h3>' . $pr->name . '<br>' . $this->product_barcode($pr->code, $pr->barcode_symbology, 60);
                     $html .= '<table class="table table-bordered">';
                     foreach ($currencies as $currency) {
                         $html .= '<tr><td class="text-left">' . $currency->code . '</td><td class="text-right">' . $this->sma->formatMoney($pr->price * $currency->rate) . '</td></tr>';
                     }
                     $html .= '</table>';
                     $html .= '</td>';
                     $r++;
                 }
                 if (!(bool) ($r & 1)) {
                     $html .= '<td></td>';
                 }
                 $html .= '</tr></tbody></table>';
                 $this->data['r'] = $r;
                 $this->data['html'] = $html;
                 $this->data['categories'] = $this->site->getAllCategories();
                 $bc = array(array('link' => base_url(), 'page' => lang('home')), array('link' => site_url('products'), 'page' => lang('products')), array('link' => '#', 'page' => lang('print_barcodes')));
                 $meta = array('page_title' => lang('print_barcodes'), 'bc' => $bc);
                 $this->page_construct('products/print_barcodes', $meta, $this->data);
                 //$this->load->view($this->theme . 'products/print_barcodes', $this->data);
             }
             if ($this->input->post('form_action') == 'export_excel' || $this->input->post('form_action') == 'export_pdf') {
                 $this->load->library('excel');
                 $this->excel->setActiveSheetIndex(0);
                 $this->excel->getActiveSheet()->setTitle('Products');
                 $this->excel->getActiveSheet()->SetCellValue('A1', lang('product_code'));
                 $this->excel->getActiveSheet()->SetCellValue('B1', lang('product_name'));
                 $this->excel->getActiveSheet()->SetCellValue('C1', lang('category_code'));
                 $this->excel->getActiveSheet()->SetCellValue('D1', lang('unit'));
                 $this->excel->getActiveSheet()->SetCellValue('E1', lang('cost'));
                 $this->excel->getActiveSheet()->SetCellValue('F1', lang('price'));
                 $this->excel->getActiveSheet()->SetCellValue('G1', lang('alert_quantity'));
                 $this->excel->getActiveSheet()->SetCellValue('H1', lang('tax_rate'));
                 $this->excel->getActiveSheet()->SetCellValue('I1', lang('tax_method'));
                 $this->excel->getActiveSheet()->SetCellValue('J1', lang('subcategory_code'));
                 $this->excel->getActiveSheet()->SetCellValue('K1', lang('product_variants'));
                 $this->excel->getActiveSheet()->SetCellValue('L1', lang('pcf1'));
                 $this->excel->getActiveSheet()->SetCellValue('M1', lang('pcf2'));
                 $this->excel->getActiveSheet()->SetCellValue('N1', lang('pcf3'));
                 $this->excel->getActiveSheet()->SetCellValue('O1', lang('pcf4'));
                 $this->excel->getActiveSheet()->SetCellValue('P1', lang('pcf5'));
                 $this->excel->getActiveSheet()->SetCellValue('Q1', lang('pcf6'));
                 $row = 2;
                 foreach ($_POST['val'] as $id) {
                     $product = $this->products_model->getProductDetail($id);
                     $variants = $this->products_model->getProductOptions($id);
                     $product_variants = '';
                     foreach ($variants as $variant) {
                         $product_variants .= trim($variant->name) . '|';
                     }
                     $this->excel->getActiveSheet()->SetCellValue('A' . $row, $product->code);
                     $this->excel->getActiveSheet()->SetCellValue('B' . $row, $product->name);
                     $this->excel->getActiveSheet()->SetCellValue('C' . $row, $product->category_code);
                     $this->excel->getActiveSheet()->SetCellValue('D' . $row, $product->unit);
                     $this->excel->getActiveSheet()->SetCellValue('E' . $row, $product->cost);
                     $this->excel->getActiveSheet()->SetCellValue('F' . $row, $product->price);
                     $this->excel->getActiveSheet()->SetCellValue('G' . $row, $product->alert_quantity);
                     $this->excel->getActiveSheet()->SetCellValue('H' . $row, $product->tax_rate_code);
                     $this->excel->getActiveSheet()->SetCellValue('I' . $row, $product->tax_method ? lang('exclusive') : lang('inclusive'));
                     $this->excel->getActiveSheet()->SetCellValue('J' . $row, $product->subcategory_code);
                     $this->excel->getActiveSheet()->SetCellValue('K' . $row, $product_variants);
                     $this->excel->getActiveSheet()->SetCellValue('L' . $row, $product->cf1);
                     $this->excel->getActiveSheet()->SetCellValue('M' . $row, $product->cf2);
                     $this->excel->getActiveSheet()->SetCellValue('N' . $row, $product->cf3);
                     $this->excel->getActiveSheet()->SetCellValue('O' . $row, $product->cf4);
                     $this->excel->getActiveSheet()->SetCellValue('P' . $row, $product->cf5);
                     $this->excel->getActiveSheet()->SetCellValue('Q' . $row, $product->cf6);
                     $row++;
                 }
                 $this->excel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
                 $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
                 $this->excel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
                 $this->excel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                 $filename = 'products_' . date('Y_m_d_H_i_s');
                 if ($this->input->post('form_action') == 'export_pdf') {
                     $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
                     $this->excel->getDefaultStyle()->applyFromArray($styleArray);
                     $this->excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                     require_once APPPATH . "third_party" . DIRECTORY_SEPARATOR . "MPDF" . DIRECTORY_SEPARATOR . "mpdf.php";
                     $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
                     $rendererLibrary = 'MPDF';
                     $rendererLibraryPath = APPPATH . 'third_party' . DIRECTORY_SEPARATOR . $rendererLibrary;
                     if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                         die('Please set the $rendererName: ' . $rendererName . ' and $rendererLibraryPath: ' . $rendererLibraryPath . ' values' . PHP_EOL . ' as appropriate for your directory structure');
                     }
                     header('Content-Type: application/pdf');
                     header('Content-Disposition: attachment;filename="' . $filename . '.pdf"');
                     header('Cache-Control: max-age=0');
                     $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'PDF');
                     return $objWriter->save('php://output');
                 }
                 if ($this->input->post('form_action') == 'export_excel') {
                     header('Content-Type: application/vnd.ms-excel');
                     header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
                     header('Cache-Control: max-age=0');
                     $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
                     return $objWriter->save('php://output');
                 }
                 redirect($_SERVER["HTTP_REFERER"]);
             }
         } else {
             $this->session->set_flashdata('error', $this->lang->line("no_product_selected"));
             redirect($_SERVER["HTTP_REFERER"]);
         }
     } else {
         $this->session->set_flashdata('error', validation_errors());
         redirect($_SERVER["HTTP_REFERER"]);
     }
 }
 function update_data()
 {
     $jc_settings = get_option('jc_setting', '');
     $this->jt = new JotForm($jc_settings['jc_api_key']);
     $this->forms = $this->jt->getForms();
     $this->submmissions = array();
     $this->form_published = array();
     $this->form_deleted = array();
     $this->form_disabled = array();
     $this->data = array();
     $this->column_title = array();
     foreach ($this->forms as $form) {
         $form['shortcode'] = '[jotform id="' . $form['id'] . '"]';
         $form['ID'] = $form['id'];
         switch ($form['status']) {
             case "DELETED":
                 $this->form_deleted[] = $form;
                 break;
             case "DISABLED":
                 $this->form_disabled[] = $form;
                 break;
             default:
                 $this->form_published[] = $form;
                 break;
         }
     }
     // get submissions
     if (isset($_REQUEST['form_id'])) {
         $form_id = $_REQUEST['form_id'];
         $this->submmissions = $this->jt->getFormSubmissions($form_id, $offset = 0, $limit = 1000);
         $form_name = $this->jt->getForm($_REQUEST['form_id']);
         $form_name = $form_name['title'];
     }
     // get columns title
     $answers = array();
     $column_title = array();
     $export_columns = array();
     //$this->submmissions=array();
     if (count($this->submmissions) > 0 && isset($this->submmissions[0]['answers'])) {
         // get columns title
         if (isset($this->submmissions[0]['answers'])) {
         }
         // endif answers
         $columns = $this->submmissions[0]['answers'];
         $columns = array_values($columns);
         // unset ($columns['0']);
         $column_title = array('cb' => '<input type="checkbox" />');
         foreach ($columns as $column) {
             $column_title = array_merge($column_title, array(sanitize_title($column['text']) => $column['text']));
             $export_columns[] = $column['text'];
         }
         $this->column_title = array_merge($column_title, array('form_id' => 'Form ID'));
         $this->column_title = array_merge($column_title, array('created_at' => 'Date'));
         $export_columns = array_merge($export_columns, array('Date'));
     }
     // get answers <br />
     $answers = array();
     $export_data = array();
     /* var_dump(array_key_exists('answers', $this->submmissions));
     		 var_dump(($this->submmissions));*/
     foreach ($this->submmissions as $submmission) {
         if (array_key_exists('answers', $submmission)) {
             $ans = array_values($submmission['answers']);
             // unset($ans['0']);
             $gtans = array('ID' => $submmission['id']);
             $gtans2 = array();
             foreach ($ans as $an) {
                 $key = sanitize_title($an['text']);
                 $val = "";
                 if (is_array($an['answer'])) {
                     $val = implode(" ", $an['answer']);
                 } else {
                     $val = $an['answer'];
                 }
                 // Check if $val is string, is valid URL and create link
                 if (!empty($val) && is_string($val) && parse_url_if_valid($val)) {
                     $val = '<a href="' . $val . '">' . $val . '</a>';
                 }
                 $gtans2 = array_merge($gtans2, array($key => $val));
                 $gtans = array_merge($gtans, array($key => $val));
             }
             $gtans = array_merge($gtans, array('form_id' => $submmission['form_id']));
             $gtans = array_merge($gtans, array('created_at' => $submmission['created_at']));
             $gtans2 = array_merge($gtans2, array('created_at' => $submmission['created_at']));
             $export_data[] = $gtans2;
             $answers[] = $gtans;
         }
     }
     $this->data = $answers;
     // sortable column
     $sc = array();
     $cts = $column_title;
     unset($cts['cb']);
     foreach ($cts as $key => $val) {
         $sc[$key] = array($key, TRUE);
     }
     $this->sortable_columns = $sc;
     // hidden
     $this->hidden_columns = array('form_id');
     // export to excel
     if (isset($_REQUEST['exportTo'])) {
         //$this->rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
         //$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
         $this->rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
         //$this->rendererLibrary = 'tcPDF.php';
         //$rendererLibrary = 'mPDF.php';
         //$rendererLibrary = 'domPDF0.6.0beta3';
         $this->rendererLibrary = 'dompdf';
         $this->rendererLibraryPath = JC_PATH_INCLUDES . '/PHPExcel/Writer/PDF/' . $this->rendererLibrary;
         if ($_REQUEST['exportTo'] == 'xls') {
             $flname = $form_name . ' (' . date("Y-m-d H-i-s") . ')' . '.xls';
         } else {
             if ($_REQUEST['exportTo'] == 'pdf') {
                 if (!PHPExcel_Settings::setPdfRenderer($this->rendererName, $this->rendererLibraryPath)) {
                     die("Unable to load PDF Rendering library");
                     exit;
                 }
                 $flname = $form_name . ' (' . date("Y-m-d H-i-s") . ')' . '.pdf';
             }
         }
         // Create new PHPExcel object
         $objPHPExcel = new PHPExcel();
         ob_start();
         // Set document properties
         $objPHPExcel->getProperties()->setCreator("Form Generator - Powered by Jotform")->setLastModifiedBy("Form Generator - Powered by Jotform")->setTitle($flname)->setSubject($flname)->setDescription("")->setKeywords("")->setCategory("");
         // Add First Rows / Column Title
         $ndx = 0;
         foreach ($export_columns as $column) {
             $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($ndx, 1, $column);
             // set background color for header
             $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($ndx, 1)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => 'c6efce'))));
             $ndx++;
         }
         $row = 2;
         foreach ($export_data as $datas) {
             $col = 0;
             foreach ($datas as $data) {
                 $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $data);
                 $col++;
             }
             $row++;
         }
         // Auto width
         if ($_REQUEST['exportTo'] == 'xls') {
             for ($x = 0; $x <= count($export_columns); $x++) {
                 $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($x)->setAutoSize(true);
             }
         }
         if ($_REQUEST['exportTo'] == 'pdf') {
             $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
         }
         // Rename worksheet
         $objPHPExcel->getActiveSheet()->setTitle('Submissions');
         // Set active sheet index to the first sheet, so Excel opens this as the first sheet
         $objPHPExcel->setActiveSheetIndex(0);
         // $data=ob_get_contents();
         // Redirect output to a client's web browser (Excel5)
         /*		header('Content-Type: application/vnd.ms-excel');
         		header('Content-Disposition: attachment;filename="'.$flname.'"');
         		header('Cache-Control: max-age=0'); */
         //echo $data;
         if ($_REQUEST['exportTo'] == 'xls') {
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
         } else {
             if ($_REQUEST['exportTo'] == 'pdf') {
                 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
             }
         }
         //$objWriter->save('php://output');
         $objWriter->save(JC_PATH . '/export/' . $flname);
         ob_end_clean();
         //	printf ('<a href="%s">%s</a>',JC_URL.'/'.$flname, $flname);
         if ($_REQUEST['exportTo'] == 'xls') {
             printf('<div id="message" class="updated"><p>Excel Submissions Ready ! <a target="blank" href="%s">Download Now</a></p></div>', JC_URL . '/export/' . $flname);
         } else {
             if ($_REQUEST['exportTo'] == 'pdf') {
                 printf('<div id="message" class="updated"><p>PDF Submissions Ready ! <a target="blank" href="%s">Download Now</a></p></div>', JC_URL . '/export/' . $flname);
             }
         }
     }
     // endif export to excel
 }
Ejemplo n.º 8
0
 /**
  * @param $result
  * @param $headerRow
  * @param $pdfFileName
  * @param bool $fieldsList
  */
 public static function generatePDFFile($result, $headerRow, $pdfFileName, $fieldsList = false, $bar = null, &$cpBar)
 {
     set_error_handler('handleFalseError');
     $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
     $rendererLibrary = 'mPDF5.4';
     $rendererLibraryPath = LIBS . '/PDF/' . $rendererLibrary;
     $objPHPExcel = self::buildExcelFile($result, $headerRow, $fieldsList, $bar, $cpBar);
     if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
         die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' . '<br />' . 'at the top of this script as appropriate for your directory structure');
     }
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
     $objWriter->save($pdfFileName . ".pdf");
 }
Ejemplo n.º 9
0
//		and its directory location on your server
//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
//$rendererLibrary = 'tcPDF5.9';
$rendererLibrary = 'mPDF5.4';
//$rendererLibrary = 'domPDF0.6.0beta3';
$rendererLibraryPath = dirname(__FILE__) . '/../../../libraries/PDF/' . $rendererLibrary;
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("PDF Test Document")->setSubject("PDF Test Document")->setDescription("Test document for PDF, generated using PHP classes.")->setKeywords("pdf php")->setCategory("Test result file");
// Add some data
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'Hello')->setCellValue('B2', 'world!')->setCellValue('C1', 'Hello')->setCellValue('D2', 'world!');
// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A4', 'Miscellaneous glyphs')->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->getActiveSheet()->setShowGridLines(false);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
    die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' . '<br />' . 'at the top of this script as appropriate for your directory structure');
}
// Redirect output to a client’s web browser (PDF)
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="01simple.pdf"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');
exit;
Ejemplo n.º 10
0
$qryEleves = $db->prepare($sql);
$lblEleves = array('Nom', 'Prénom', 'Téléphone', 'Natel père', 'Natel mère', 'Adresse e-mail', 'Adresse', 'NPA', 'Ville');
// Spreadsheet columns
define('COL_EMAIL', 'F');
define('COL_NPA', 'H');
// The worksheet's last column is determined by the number of fields returned
// by the query to retrieve children, minus 1 (the degre is not shown)
$last_col = PHPExcel_Cell::stringFromColumnIndex(count($lblEleves) - 1);
// Statistics
$classe_count = 0;
$classe_effectif = 0;
$total_effectif = 0;
$total_eleves = 0;
// Set PDF renderer
if (ExportFileFormat::isPDF()) {
    PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_MPDF, $pdf_renderer_path) or die("Impossible d'initialiser le générateur de PDF");
}
// Autosize columns: set font path to improve columns' width estimation.
if (php_uname('s') == 'Linux') {
    $font_path = '/usr/share/fonts/truetype/msttcorefonts/';
} else {
    $font_path = 'C:/Windows/Fonts/';
}
PHPExcel_Shared_Font::setTrueTypeFontPath($font_path);
// ----------------------------------------------------------------------------
// Process classes
//
echo "\n";
foreach ($qryClasses as $classe) {
    $classe_count++;
    // To collect address to whom the list will be sent
Ejemplo n.º 11
0
 function getRrgisterlogs($pdf = NULL, $xls = NULL)
 {
     $this->sma->checkPermissions('register', TRUE);
     if ($this->input->get('user')) {
         $user = $this->input->get('user');
     } else {
         $user = NULL;
     }
     if ($this->input->get('start_date')) {
         $start_date = $this->input->get('start_date');
     } else {
         $start_date = NULL;
     }
     if ($this->input->get('end_date')) {
         $end_date = $this->input->get('end_date');
     } else {
         $end_date = NULL;
     }
     if ($start_date) {
         $start_date = $this->sma->fld($start_date);
         $end_date = $this->sma->fld($end_date);
     }
     if ($pdf || $xls) {
         $this->db->select("date, closed_at, CONCAT(" . $this->db->dbprefix('users') . ".first_name, ' ', " . $this->db->dbprefix('users') . ".last_name, ' (', users.email, ')') as user, cash_in_hand, total_cc_slips, total_cheques, total_cash, total_cc_slips_submitted, total_cheques_submitted,total_cash_submitted, note", FALSE)->from("pos_register")->join('users', 'users.id=pos_register.user_id', 'left')->order_by('date desc');
         //->where('status', 'close');
         if ($user) {
             $this->db->where('pos_register.user_id', $user);
         }
         if ($start_date) {
             $this->db->where('date BETWEEN "' . $start_date . '" and "' . $end_date . '"');
         }
         $q = $this->db->get();
         if ($q->num_rows() > 0) {
             foreach ($q->result() as $row) {
                 $data[] = $row;
             }
         } else {
             $data = NULL;
         }
         if (!empty($data)) {
             $this->load->library('excel');
             $this->excel->setActiveSheetIndex(0);
             $this->excel->getActiveSheet()->setTitle(lang('register_report'));
             $this->excel->getActiveSheet()->SetCellValue('A1', lang('open_time'));
             $this->excel->getActiveSheet()->SetCellValue('B1', lang('close_time'));
             $this->excel->getActiveSheet()->SetCellValue('C1', lang('user'));
             $this->excel->getActiveSheet()->SetCellValue('D1', lang('cash_in_hand'));
             $this->excel->getActiveSheet()->SetCellValue('E1', lang('cc_slips'));
             $this->excel->getActiveSheet()->SetCellValue('F1', lang('cheques'));
             $this->excel->getActiveSheet()->SetCellValue('G1', lang('total_cash'));
             $this->excel->getActiveSheet()->SetCellValue('H1', lang('cc_slips_submitted'));
             $this->excel->getActiveSheet()->SetCellValue('I1', lang('cheques_submitted'));
             $this->excel->getActiveSheet()->SetCellValue('J1', lang('total_cash_submitted'));
             $this->excel->getActiveSheet()->SetCellValue('K1', lang('note'));
             $row = 2;
             foreach ($data as $data_row) {
                 $this->excel->getActiveSheet()->SetCellValue('A' . $row, $this->sma->hrld($data_row->date));
                 $this->excel->getActiveSheet()->SetCellValue('B' . $row, $data_row->closed_at);
                 $this->excel->getActiveSheet()->SetCellValue('C' . $row, $data_row->user);
                 $this->excel->getActiveSheet()->SetCellValue('D' . $row, $data_row->cash_in_hand);
                 $this->excel->getActiveSheet()->SetCellValue('E' . $row, $data_row->total_cc_slips);
                 $this->excel->getActiveSheet()->SetCellValue('F' . $row, $data_row->total_cheques);
                 $this->excel->getActiveSheet()->SetCellValue('G' . $row, $data_row->total_cash);
                 $this->excel->getActiveSheet()->SetCellValue('H' . $row, $data_row->total_cc_slips_submitted);
                 $this->excel->getActiveSheet()->SetCellValue('I' . $row, $data_row->total_cheques_submitted);
                 $this->excel->getActiveSheet()->SetCellValue('J' . $row, $data_row->total_cash_submitted);
                 $this->excel->getActiveSheet()->SetCellValue('K' . $row, $data_row->note);
                 if ($data_row->total_cash_submitted < $data_row->total_cash || $data_row->total_cheques_submitted < $data_row->total_cheques || $data_row->total_cc_slips_submitted < $data_row->total_cc_slips) {
                     $this->excel->getActiveSheet()->getStyle('A' . $row . ':K' . $row)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => 'F2DEDE'))));
                 }
                 $row++;
             }
             $this->excel->getActiveSheet()->getColumnDimension('A')->setWidth(25);
             $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
             $this->excel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
             $this->excel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('J')->setWidth(15);
             $this->excel->getActiveSheet()->getColumnDimension('K')->setWidth(35);
             $filename = 'register_report';
             $this->excel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
             if ($pdf) {
                 $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
                 $this->excel->getDefaultStyle()->applyFromArray($styleArray);
                 $this->excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                 require_once APPPATH . "third_party" . DIRECTORY_SEPARATOR . "MPDF" . DIRECTORY_SEPARATOR . "mpdf.php";
                 $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
                 $rendererLibrary = 'MPDF';
                 $rendererLibraryPath = APPPATH . 'third_party' . DIRECTORY_SEPARATOR . $rendererLibrary;
                 if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                     die('Please set the $rendererName: ' . $rendererName . ' and $rendererLibraryPath: ' . $rendererLibraryPath . ' values' . PHP_EOL . ' as appropriate for your directory structure');
                 }
                 header('Content-Type: application/pdf');
                 header('Content-Disposition: attachment;filename="' . $filename . '.pdf"');
                 header('Cache-Control: max-age=0');
                 $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'PDF');
                 $objWriter->save('php://output');
                 exit;
             }
             if ($xls) {
                 //$this->excel->getActiveSheet()->getStyle('C2:C' . $row)->getAlignment()->setWrapText(true);
                 ob_clean();
                 header('Content-Type: application/vnd.ms-excel');
                 header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
                 header('Cache-Control: max-age=0');
                 ob_clean();
                 $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
                 $objWriter->save('php://output');
                 exit;
             }
         }
         $this->session->set_flashdata('error', lang('nothing_found'));
         redirect($_SERVER["HTTP_REFERER"]);
     } else {
         $this->load->library('datatables');
         $this->datatables->select("date, closed_at, CONCAT(" . $this->db->dbprefix('users') . ".first_name, ' ', " . $this->db->dbprefix('users') . ".last_name, '<br>', " . $this->db->dbprefix('users') . ".email) as user, cash_in_hand, CONCAT(total_cc_slips, ' (', total_cc_slips_submitted, ')'), CONCAT(total_cheques, ' (', total_cheques_submitted, ')'), CONCAT(total_cash, ' (', total_cash_submitted, ')'), note", FALSE)->from("pos_register")->join('users', 'users.id=pos_register.user_id', 'left');
         if ($user) {
             $this->datatables->where('pos_register.user_id', $user);
         }
         if ($start_date) {
             $this->datatables->where('date BETWEEN "' . $start_date . '" and "' . $end_date . '"');
         }
         echo $this->datatables->generate();
     }
 }
Ejemplo n.º 12
0
include_once '/class/CategorieFrais.php';
include_once '/class/Devise.php';
if (isset($_GET['id']) && !empty($_GET['id'])) {
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    define('EOL', PHP_SAPI == 'cli' ? PHP_EOL : '<br />');
    date_default_timezone_set('Europe/Paris');
    /** PHPExcel_IOFactory */
    require_once '/ressources/PHPExcel_1.8.0_doc/Classes/PHPExcel/IOFactory.php';
    require_once '/ressources/PHPExcel_1.8.0_doc/Classes/PHPExcel/Writer/PDF.php';
    include '/ressources/PHPExcel_1.8.0_doc/Classes/PHPExcel/Writer/Excel2007.php';
    $objReader = PHPExcel_IOFactory::createReader('Excel5');
    // Chemin d'accès à la librairie de convesion tcPDF
    $rendererLibraryPath = 'ressources/PHPExcel_1.8.0_doc/Classes/libs/tcpdf';
    PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_TCPDF, $rendererLibraryPath);
    $objPHPExcel = $objReader->load("ressources/PHPExcel_1.8.0_doc/Examples/templates/templateEnote.xls");
    //On fait un clone de la note pour obtenir toutes ses informations
    $CloneNote = Note::getNoteById($bdd, $_GET['id']);
    $allFraisFromThisNote = $CloneNote->getListFrais($bdd);
    //Clone de la devise pour avoir toutes ses informations
    $CloneDevise = Devise::getDeviseById($bdd, $sessionUser->getDevise());
    //Ecrit le nom et le login de l'utilisateur ainsi que sa devise
    $nomUtilisateur = str_replace(" ", "", $sessionUser->getName());
    $objPHPExcel->getActiveSheet()->setCellValue('B8', $nomUtilisateur);
    $objPHPExcel->getActiveSheet()->setCellValue('F8', $sessionUser->getLogin());
    $objPHPExcel->getActiveSheet()->setCellValue('J8', $CloneDevise->getName());
    $datePremierFrais;
    $dateDernierFrais;
    $totalAvance = 0;
    $totalCase = 0;
Ejemplo n.º 13
0
 function export($id = NULL, $pdf = NULL, $xls = NULL)
 {
     $data = $this->get_stuff();
     //print_r($data);exit;
     if (isset($_GET['s'])) {
         $data = $this->get_otherstuff();
     }
     if ($pdf || $xls) {
         //echo "good";exit;
         if (!empty($data)) {
             $this->load->library('excel');
             $this->excel->setActiveSheetIndex(0);
             $this->excel->getActiveSheet()->setTitle(lang('sales_report'));
             $this->excel->getActiveSheet()->SetCellValue('A1', lang('full_name'));
             $this->excel->getActiveSheet()->SetCellValue('B1', lang('category'));
             $this->excel->getActiveSheet()->SetCellValue('C1', date('M-Y', $this->getMonths()));
             $this->excel->getActiveSheet()->SetCellValue('D1', date('M-Y', $this->getMonths(1)));
             $this->excel->getActiveSheet()->SetCellValue('E1', date('M-Y', $this->getMonths(2)));
             $this->excel->getActiveSheet()->SetCellValue('F1', date('M-Y', $this->getMonths(3)));
             $this->excel->getActiveSheet()->SetCellValue('G1', date('M-Y', $this->getMonths(4)));
             $this->excel->getActiveSheet()->SetCellValue('H1', date('M-Y', $this->getMonths(5)));
             $this->excel->getActiveSheet()->SetCellValue('I1', date('M-Y', $this->getMonths(6)));
             $this->excel->getActiveSheet()->SetCellValue('J1', date('M-Y', $this->getMonths(7)));
             $this->excel->getActiveSheet()->SetCellValue('K1', date('M-Y', $this->getMonths(8)));
             $this->excel->getActiveSheet()->SetCellValue('L1', date('M-Y', $this->getMonths(9)));
             $this->excel->getActiveSheet()->SetCellValue('M1', date('M-Y', $this->getMonths(10)));
             $this->excel->getActiveSheet()->SetCellValue('N1', date('M-Y', $this->getMonths(11)));
             $row = 2;
             $total = 0;
             $paid = 0;
             $balance = 0;
             $target = $this->data['targets'];
             for ($i = 0; $i < count($data) - 1; $i++) {
                 $this->excel->getActiveSheet()->SetCellValue('A' . $row, $target[0]->full_name);
                 $this->excel->getActiveSheet()->SetCellValue('B' . $row, $data[$i][0]);
                 $this->excel->getActiveSheet()->SetCellValue('C' . $row, $data[$i][1]);
                 $this->excel->getActiveSheet()->SetCellValue('D' . $row, number_format($data[$i][2], 2));
                 $this->excel->getActiveSheet()->SetCellValue('E' . $row, number_format($data[$i][3], 2));
                 $this->excel->getActiveSheet()->SetCellValue('F' . $row, number_format($data[$i][4], 2));
                 $this->excel->getActiveSheet()->SetCellValue('G' . $row, number_format($data[$i][5], 2));
                 $this->excel->getActiveSheet()->SetCellValue('H' . $row, number_format($data[$i][6], 2));
                 $this->excel->getActiveSheet()->SetCellValue('I' . $row, number_format($data[$i][7], 2));
                 $this->excel->getActiveSheet()->SetCellValue('J' . $row, number_format($data[$i][8], 2));
                 $this->excel->getActiveSheet()->SetCellValue('K' . $row, number_format($data[$i][9], 2));
                 $this->excel->getActiveSheet()->SetCellValue('L' . $row, number_format($data[$i][10], 2));
                 $this->excel->getActiveSheet()->SetCellValue('M' . $row, number_format($data[$i][11], 2));
                 $this->excel->getActiveSheet()->SetCellValue('N' . $row, number_format($data[$i][12], 2));
                 $row++;
                 $j = $i;
             }
             $j = count($data) - 1;
             $this->excel->getActiveSheet()->getStyle("C" . $row . ":N" . $row)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_MEDIUM);
             $this->excel->getActiveSheet()->SetCellValue('A' . $row, $target[0]->full_name . ' TOTAL');
             $this->excel->getActiveSheet()->SetCellValue('C' . $row, $data[$j][1]);
             $this->excel->getActiveSheet()->SetCellValue('D' . $row, number_format($data[$j][2], 2));
             $this->excel->getActiveSheet()->SetCellValue('E' . $row, number_format($data[$j][3], 2));
             $this->excel->getActiveSheet()->SetCellValue('F' . $row, number_format($data[$j][4], 2));
             $this->excel->getActiveSheet()->SetCellValue('G' . $row, number_format($data[$j][5], 2));
             $this->excel->getActiveSheet()->SetCellValue('H' . $row, number_format($data[$j][6], 2));
             $this->excel->getActiveSheet()->SetCellValue('I' . $row, number_format($data[$j][7], 2));
             $this->excel->getActiveSheet()->SetCellValue('J' . $row, number_format($data[$j][8], 2));
             $this->excel->getActiveSheet()->SetCellValue('K' . $row, number_format($data[$j][9], 2));
             $this->excel->getActiveSheet()->SetCellValue('L' . $row, number_format($data[$j][10], 2));
             $this->excel->getActiveSheet()->SetCellValue('M' . $row, number_format($data[$j][11], 2));
             $this->excel->getActiveSheet()->SetCellValue('N' . $row, number_format($data[$j][12], 2));
             $this->excel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
             $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
             $this->excel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('D')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('E')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('G')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('H')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('I')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('J')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('K')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('L')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('M')->setWidth(10);
             $this->excel->getActiveSheet()->getColumnDimension('N')->setWidth(10);
             $filename = 'targets';
             $this->excel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
             if ($pdf) {
                 $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
                 $this->excel->getDefaultStyle()->applyFromArray($styleArray);
                 $this->excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                 require_once APPPATH . "third_party" . DIRECTORY_SEPARATOR . "MPDF" . DIRECTORY_SEPARATOR . "mpdf.php";
                 $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
                 $rendererLibrary = 'MPDF';
                 $rendererLibraryPath = APPPATH . 'third_party' . DIRECTORY_SEPARATOR . $rendererLibrary;
                 if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                     die('Please set the $rendererName: ' . $rendererName . ' and $rendererLibraryPath: ' . $rendererLibraryPath . ' values' . PHP_EOL . ' as appropriate for your directory structure');
                 }
                 header('Content-Type: application/pdf');
                 header('Content-Disposition: attachment;filename="' . $filename . '.pdf"');
                 header('Cache-Control: max-age=0');
                 $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'PDF');
                 $objWriter->save('php://output');
                 exit;
             }
             if ($xls) {
                 $this->excel->getActiveSheet()->getStyle('E2:E' . $row)->getAlignment()->setWrapText(true);
                 ob_clean();
                 header('Content-Type: application/vnd.ms-excel');
                 header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
                 header('Cache-Control: max-age=0');
                 ob_clean();
                 $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
                 $objWriter->save('php://output');
                 exit;
             }
         }
         $this->session->set_flashdata('error', lang('nothing_found'));
         redirect($_SERVER["HTTP_REFERER"]);
     }
 }
Ejemplo n.º 14
0
date_default_timezone_set('Asia/Tokyo');
require __DIR__ . '/vendor/autoload.php';
$products = [['Microsoft Excel 2016', 14000, 2], ['Microsoft Word 2016', 14800, 1], ['Microsoft PowerPoint 2016', 15000, 1]];
$book = PHPExcel_IOFactory::load('templates/13-見積書テンプレート.xlsx');
$sheet = $book->getActiveSheet();
$rowOffset = 3;
foreach ($products as $row => $product) {
    foreach ($product as $col => $value) {
        $sheet->setCellValueByColumnAndRow($col, $row + $rowOffset, $value);
    }
}
$excelWriter = PHPExcel_IOFactory::createWriter($book, 'Excel2007');
$excelWriter->save('output/13-excel.xlsx');
// tcPDF
PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_TCPDF, __DIR__ . '/vendor/tecnickcom/tcpdf');
$pdfWriter = PHPExcel_IOFactory::createWriter($book, 'PDF');
$pdfWriter->save('output/13-tcPDF.pdf');
// DomPDF
PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_DOMPDF, __DIR__ . '/vendor/dompdf/dompdf');
$pdfWriter = PHPExcel_IOFactory::createWriter($book, 'PDF');
$pdfWriter->save('output/13-Dompdf.pdf');
// mPDF
PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_MPDF, __DIR__ . '/vendor/mpdf/mpdf');
$pdfWriter = PHPExcel_IOFactory::createWriter($book, 'PDF');
$pdfWriter->save('output/13-mPDF.pdf');
// LibreOfficeでPDF化する
$soffice = '/Applications/LibreOffice.app/Contents/MacOS/soffice';
$outdir = __DIR__ . '/output';
$command = "{$soffice} --headless --convert-to pdf --outdir {$outdir} {$outdir}/13-excel.xlsx";
echo $command, PHP_EOL;
passthru($command);
Ejemplo n.º 15
0
 public function test()
 {
     // 		ini_set("memory_limit","1024M");
     // 		$html = file_get_contents('../'.EXPORT_TEMP_PATH.'13554680705609.html');;
     // 		require_once dirname(__FILE__)."/../Util/MPDF54/mpdf.php";
     // 		$mpdf=new mPDF();
     // 		$mpdf->useAdobeCJK = true;		// Default setting in config.php
     // 		// You can set this to false if you have defined other CJK fonts
     // 		$mpdf->SetAutoFont(AUTOFONT_CJK);	//	AUTOFONT_CJK | AUTOFONT_THAIVIET | AUTOFONT_RTL | AUTOFONT_INDIC	// AUTOFONT_ALL
     // 		// () = default ALL, 0 turns OFF (default initially)
     // 		$mpdf->WriteHTML($html);
     // 		$filename = '../'.EXPORT_TEMP_PATH.'13554680705609'.'_'.rand(100,999).'.pdf';
     // 		$mpdf->Output($filename);
     // 		echo $filename;
     // 		Log::write(date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" );
     // 		$objReader = PHPExcel_IOFactory::createReader('Excel5');
     // 		$objPHPExcel = $objReader->load(EXCEL_TEMPLATES_PATH."track_template.xls");
     $objReader = PHPExcel_IOFactory::createReader('Excel2007');
     $objPHPExcel = $objReader->load(EXCEL_TEMPLATES_PATH . "track_template.xlsx");
     $row = 9;
     $objPHPExcel->getActiveSheet()->setCellValue('A' . $row, date('Y-m-d H:i:s'))->setCellValue('B' . $row, '内蒙古自治区包头市东河区,西脑包南五道巷-巴彦塔拉西大街交叉路口,包头市东河区国家税务局,中国石油宁鹿大酒店,出租车上下客站附近')->setCellValue('C' . $row, 25.33)->setCellValue('D' . $row, '东北')->setCellValue('E' . $row, '正常');
     $objPHPExcel->getActiveSheet()->getRowDimension($row)->setRowHeight(-1);
     // 		$ws  = "\nwidth A:" . $objPHPExcel->getActiveSheet()->getColumnDimension('A')->getWidth();
     // 		$ws .= "\nwidth B:" . $objPHPExcel->getActiveSheet()->getColumnDimension('B')->getWidth();
     // 		$ws .= "\nwidth C:" . $objPHPExcel->getActiveSheet()->getColumnDimension('C')->getWidth();
     // 		$ws .= "\nwidth D:" . $objPHPExcel->getActiveSheet()->getColumnDimension('D')->getWidth();
     // 		$ws .= "\nwidth E:" . $objPHPExcel->getActiveSheet()->getColumnDimension('E')->getWidth();
     // 		Log::write($ws);
     $widthPT = ($objPHPExcel->getActiveSheet()->getColumnDimension('A')->getWidth() + $objPHPExcel->getActiveSheet()->getColumnDimension('B')->getWidth() + $objPHPExcel->getActiveSheet()->getColumnDimension('C')->getWidth() + $objPHPExcel->getActiveSheet()->getColumnDimension('D')->getWidth() + $objPHPExcel->getActiveSheet()->getColumnDimension('E')->getWidth()) * 6;
     //经验:导出成Excel2007
     // 				* 4.7499; //经验:导出成PDF
     Log::write("\n-----------widthPT:" . $widthPT . "-----------");
     $widthPX = round($widthPT * 4 / 3);
     Log::write("\n-----------widthPX:" . $widthPX . "-----------");
     $heightPT = 300;
     $heightPX = 400;
     $objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight($heightPT);
     $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
     $rendererLibrary = 'mPDF5.4';
     $rendererLibraryPath = dirname(__FILE__) . '/../Util/MPDF54';
     PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
     // 		$widthPX +=-2;	//Excel5和Excel2007才需要
     // 		$heightPX +=-2;
     $url = 'http://api.map.baidu.com/staticimage?width=' . $widthPX . '&height=' . $heightPX . '&center=116.468265,39.90692&zoom=11&markers=116.418822,39.859083|116.49586,39.960917&markerStyles=l,|l,';
     $newfname = '../' . EXPORT_TEMP_PATH . 'staticimage.png';
     $file = fopen($url, "rb");
     if ($file) {
         $newf = fopen($newfname, "wb");
         if ($newf) {
             while (!feof($file)) {
                 fwrite($newf, fread($file, 1024 * 8), 1024 * 8);
             }
         }
     }
     if ($file) {
         fclose($file);
     }
     if ($newf) {
         fclose($newf);
     }
     $objDrawing = new PHPExcel_Worksheet_Drawing();
     $objDrawing->setName('map');
     $objDrawing->setDescription('Map');
     $objDrawing->setPath('../' . EXPORT_TEMP_PATH . 'staticimage.png');
     // 		$objDrawing->setOffsetX(1);	//Excel5和Excel2007才需要
     // 		$objDrawing->setOffsetY(1);
     // 		$objDrawing->setHeight($heightPT);
     $objDrawing->setCoordinates('A6');
     $objDrawing->getShadow()->setVisible(true);
     $objDrawing->getShadow()->setDirection(45);
     $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
     $wd = "\nWidth: " . $objDrawing->getWidth();
     $wd .= "\nHeight: " . $objDrawing->getHeight();
     Log::write($wd);
     $file = EXPORT_TEMP_PATH . time() . rand(1000, 9999) . '.pdf';
     $objPHPExcel->getActiveSheet()->setShowGridlines(false);
     //要导出成PDF(或者HTML)这个比较重要,否则表格线会造成出来的结果不好
     ini_set("memory_limit", "1024M");
     //MPDF消耗内存比较厉害
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
     $objWriter->setImagesRoot('..');
     $objWriter->setPrintParams('A4', 'P', '', '', '', '', 16, 16, 15, 15, 9, 9, true, null, null);
     $objWriter->save('../' . $file);
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
     $objWriter->save('../' . str_replace('.pdf', '.html', $file));
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
     $objWriter->save('../' . str_replace('.pdf', '.xls', $file));
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
     $objWriter->save('../' . str_replace('.pdf', '.xlsx', $file));
 }
Ejemplo n.º 16
0
 function type_actions()
 {
     $this->form_validation->set_rules('form_action', lang("form_action"), 'required');
     if ($this->form_validation->run() == true) {
         if (!empty($_POST['val'])) {
             if ($this->input->post('form_action') == 'delete') {
                 foreach ($_POST['val'] as $id) {
                     $this->custom_model->deleteType($id);
                 }
                 $this->session->set_flashdata('message', lang("types_deleted"));
                 redirect($_SERVER["HTTP_REFERER"]);
             }
             if ($this->input->post('form_action') == 'export_excel' || $this->input->post('form_action') == 'export_pdf') {
                 $this->load->library('excel');
                 $this->excel->setActiveSheetIndex(0);
                 $this->excel->getActiveSheet()->setTitle(lang('Route ID'));
                 $this->excel->getActiveSheet()->SetCellValue('A1', lang('id'));
                 $this->excel->getActiveSheet()->SetCellValue('B1', lang('type'));
                 $row = 2;
                 foreach ($_POST['val'] as $id) {
                     $sc = $this->custom_model->getTypeByID($id);
                     $this->excel->getActiveSheet()->SetCellValue('A' . $row, $sc->id);
                     $this->excel->getActiveSheet()->SetCellValue('B' . $row, $sc->name);
                     $row++;
                 }
                 $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
                 $this->excel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                 $filename = 'types_' . date('Y_m_d_H_i_s');
                 if ($this->input->post('form_action') == 'export_pdf') {
                     $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
                     $this->excel->getDefaultStyle()->applyFromArray($styleArray);
                     $this->excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                     require_once APPPATH . "third_party" . DIRECTORY_SEPARATOR . "MPDF" . DIRECTORY_SEPARATOR . "mpdf.php";
                     $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
                     $rendererLibrary = 'MPDF';
                     $rendererLibraryPath = APPPATH . 'third_party' . DIRECTORY_SEPARATOR . $rendererLibrary;
                     if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                         die('Please set the $rendererName: ' . $rendererName . ' and $rendererLibraryPath: ' . $rendererLibraryPath . ' values' . PHP_EOL . ' as appropriate for your directory structure');
                     }
                     header('Content-Type: application/pdf');
                     header('Content-Disposition: attachment;filename="' . $filename . '.pdf"');
                     header('Cache-Control: max-age=0');
                     $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'PDF');
                     return $objWriter->save('php://output');
                 }
                 if ($this->input->post('form_action') == 'export_excel') {
                     header('Content-Type: application/vnd.ms-excel');
                     header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
                     header('Cache-Control: max-age=0');
                     $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
                     return $objWriter->save('php://output');
                 }
                 redirect($_SERVER["HTTP_REFERER"]);
             }
         } else {
             $this->session->set_flashdata('error', lang("no_tax_rate_selected"));
             redirect($_SERVER["HTTP_REFERER"]);
         }
     } else {
         $this->session->set_flashdata('error', validation_errors());
         redirect($_SERVER["HTTP_REFERER"]);
     }
 }
Ejemplo n.º 17
0
 /**
  * to output excel
  * @param array $data ['data'=>[],'header'=>'','cell'=>[]]
  * @param string $name filename
  * @param string $type 'Excel5' or 'Excel2007' or 'PDF'
  */
 public function outExcel($data, $name, $type = 'Excel5')
 {
     error_reporting(E_ALL);
     ini_set('display_errors', TRUE);
     ini_set('display_startup_errors', TRUE);
     ini_set('date.timezone', 'PRC');
     if (PHP_SAPI == 'cli') {
         die('This example should only be run from a Web Browser');
     }
     require_once __DIR__ . '/extensions/PHPExcel.php';
     $objPHPExcel = new \PHPExcel();
     //设置文件属性
     if ($type == 'PDF') {
         $objPHPExcel->getProperties()->setCreator("miaojiaju")->setLastModifiedBy("miaojiaju")->setTitle("PDF Test Document")->setSubject("PDF Test Document")->setDescription("Test document for PDF, generated using PHP classes.")->setKeywords("pdf php")->setCategory("Test result file");
     } else {
         $objPHPExcel->getProperties()->setCreator("miaojiaju")->setLastModifiedBy("miaojiaju")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file");
     }
     // Set active sheet index to the first sheet, so Excel opens this as the first sheet
     $objPHPExcel->setActiveSheetIndex(0);
     // Rename worksheet
     $objPHPExcel->getActiveSheet()->setTitle('测试记录');
     //获取实际表头下标数组array $cell_key
     $cell_key = isset($data['data'][0]) ? array_keys($data['data'][0]) : [];
     //根据实际表头下标数组长度$len生成有效单元格列数(字母)数组array $index(A,B,C,...,Z,AA,AB,...)
     $len = count($cell_key);
     $index = EasyHelpers::excelCell($len);
     //$cell_key最大下标$max_index
     $max_index = $len - 1;
     foreach ($index as $v_i) {
         //设置单元格宽度(自动)
         $objPHPExcel->getActiveSheet()->getColumnDimension($v_i)->setAutoSize(true);
         //            $objPHPExcel->getActiveSheet()->getColumnDimension($v_i)->setWidth(30);
         //设置水平居中
         $objPHPExcel->getActiveSheet()->getStyle($v_i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
         //设置垂直居中
         $objPHPExcel->getActiveSheet()->getStyle($v_i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
     }
     //设置单元格宽度(手动)
     $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(false);
     $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);
     //合并第一行单元格作为标题行
     $objPHPExcel->getActiveSheet()->mergeCells('A1:' . $index[$max_index] . '1');
     //设置单元格样式
     $objPHPExcel->getActiveSheet()->getStyle('A2:' . $index[$max_index] . '2')->getFont()->setName('黑体');
     $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
     $objPHPExcel->getActiveSheet()->getStyle('A2:' . $index[$max_index] . '2')->getFont()->setBold(true);
     // 添加标题行数据
     $cellvalue = $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $data['header'] . '    (时间:' . date('Y-m-d H:i:s') . ')');
     //添加表头数据
     foreach ($data['cell'] as $k_c => $v_c) {
         $cellvalue->setCellValue($index[$k_c] . '2', $v_c);
     }
     //添加表格数据
     foreach ($data['data'] as $k_d => $v_d) {
         //each line each cell
         foreach ($cell_key as $k_ck => $v_ck) {
             $objPHPExcel->getActiveSheet()->setCellValue($index[$k_ck] . ($k_d + 3), $v_d[$v_ck]);
         }
     }
     //加图片
     //        $objDrawing = new \PHPExcel_Worksheet_Drawing();
     //        $objDrawing->setName('Photo');
     //        $objDrawing->setDescription('Photo');
     //        $objDrawing->setPath(\Yii::$app->basePath.'/web/images/balance/ABC.png');
     ////        $objDrawing->setHeight(170);
     ////        $objDrawing->setWidth(120);
     //        //图片坐标
     //        $objDrawing->setCoordinates('A10');
     //        $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
     ob_end_clean();
     if ($type == 'Excel5') {
         // Redirect output to a client’s web browser (Excel5)
         header('Content-Type: application/vnd.ms-excel;charset=UTF-8');
         header('Content-Disposition: attachment;filename="' . $name . '(' . date('Ymd-His') . ').xls"');
         header('Cache-Control: max-age=0');
         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
         $objWriter->save('php://output');
     } elseif ($type == 'Excel2007') {
         header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8');
         header('Content-Disposition: attachment;filename="' . $name . '(' . date('Ymd-His') . ').xlsx"');
         header('Cache-Control: max-age=0');
         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
         $objWriter->save('php://output');
     } elseif ($type == 'PDF') {
         $rendererName = \PHPExcel_Settings::PDF_RENDERER_TCPDF;
         $rendererLibrary = 'tcPDF';
         $rendererLibraryPath = __DIR__ . '/extensions/PDF/' . $rendererLibrary;
         if (!\PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
             die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' . '<br />' . 'at the top of this script as appropriate for your directory structure');
         }
         header('Content-Type: application/pdf;charset=UTF-8');
         header('Content-Disposition: attachment;filename="' . $name . '(' . date('Ymd-His') . ').pdf"');
         header('Cache-Control: max-age=0');
         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
         $objWriter->save('php://output');
     } else {
         die;
     }
 }
Ejemplo n.º 18
0
 function customer_actions()
 {
     if (!$this->Owner) {
         $this->session->set_flashdata('warning', lang('access_denied'));
         redirect($_SERVER["HTTP_REFERER"]);
     }
     $this->form_validation->set_rules('form_action', lang("form_action"), 'required');
     if ($this->form_validation->run() == true) {
         if (!empty($_POST['val'])) {
             if ($this->input->post('form_action') == 'delete') {
                 $error = false;
                 foreach ($_POST['val'] as $id) {
                     if (!$this->companies_model->deleteCustomer($id)) {
                         $error = true;
                     }
                 }
                 if ($error) {
                     $this->session->set_flashdata('warning', lang('customers_x_deleted_have_sales'));
                 } else {
                     $this->session->set_flashdata('message', $this->lang->line("customers_deleted"));
                 }
                 redirect($_SERVER["HTTP_REFERER"]);
             }
             if ($this->input->post('form_action') == 'export_excel' || $this->input->post('form_action') == 'export_pdf') {
                 $this->load->library('excel');
                 $this->excel->setActiveSheetIndex(0);
                 $this->excel->getActiveSheet()->setTitle(lang('customer'));
                 $this->excel->getActiveSheet()->SetCellValue('A1', lang('company'));
                 $this->excel->getActiveSheet()->SetCellValue('B1', lang('name'));
                 $this->excel->getActiveSheet()->SetCellValue('C1', lang('email'));
                 $this->excel->getActiveSheet()->SetCellValue('D1', lang('phone'));
                 $this->excel->getActiveSheet()->SetCellValue('E1', lang('address'));
                 $this->excel->getActiveSheet()->SetCellValue('F1', lang('city'));
                 $this->excel->getActiveSheet()->SetCellValue('G1', lang('state'));
                 $this->excel->getActiveSheet()->SetCellValue('H1', lang('postal_code'));
                 $this->excel->getActiveSheet()->SetCellValue('I1', lang('country'));
                 $this->excel->getActiveSheet()->SetCellValue('J1', lang('vat_no'));
                 $this->excel->getActiveSheet()->SetCellValue('K1', lang('ccf1'));
                 $this->excel->getActiveSheet()->SetCellValue('L1', lang('ccf2'));
                 $this->excel->getActiveSheet()->SetCellValue('M1', lang('ccf3'));
                 $this->excel->getActiveSheet()->SetCellValue('N1', lang('ccf4'));
                 $this->excel->getActiveSheet()->SetCellValue('O1', lang('ccf5'));
                 $this->excel->getActiveSheet()->SetCellValue('P1', lang('ccf6'));
                 $row = 2;
                 foreach ($_POST['val'] as $id) {
                     $customer = $this->site->getCompanyByID($id);
                     $this->excel->getActiveSheet()->SetCellValue('A' . $row, $customer->company);
                     $this->excel->getActiveSheet()->SetCellValue('B' . $row, $customer->name);
                     $this->excel->getActiveSheet()->SetCellValue('C' . $row, $customer->email);
                     $this->excel->getActiveSheet()->SetCellValue('D' . $row, $customer->phone);
                     $this->excel->getActiveSheet()->SetCellValue('E' . $row, $customer->address);
                     $this->excel->getActiveSheet()->SetCellValue('F' . $row, $customer->city);
                     $this->excel->getActiveSheet()->SetCellValue('G' . $row, $customer->state);
                     $this->excel->getActiveSheet()->SetCellValue('H' . $row, $customer->postal_code);
                     $this->excel->getActiveSheet()->SetCellValue('I' . $row, $customer->country);
                     $this->excel->getActiveSheet()->SetCellValue('J' . $row, $customer->vat_no);
                     $this->excel->getActiveSheet()->SetCellValue('K' . $row, $customer->cf1);
                     $this->excel->getActiveSheet()->SetCellValue('L' . $row, $customer->cf2);
                     $this->excel->getActiveSheet()->SetCellValue('M' . $row, $customer->cf3);
                     $this->excel->getActiveSheet()->SetCellValue('N' . $row, $customer->cf4);
                     $this->excel->getActiveSheet()->SetCellValue('O' . $row, $customer->cf5);
                     $this->excel->getActiveSheet()->SetCellValue('P' . $row, $customer->cf6);
                     $row++;
                 }
                 $this->excel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
                 $this->excel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
                 $this->excel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
                 $this->excel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                 $filename = 'customers_' . date('Y_m_d_H_i_s');
                 if ($this->input->post('form_action') == 'export_pdf') {
                     $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
                     $this->excel->getDefaultStyle()->applyFromArray($styleArray);
                     $this->excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                     require_once APPPATH . "third_party" . DIRECTORY_SEPARATOR . "MPDF" . DIRECTORY_SEPARATOR . "mpdf.php";
                     $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
                     $rendererLibrary = 'MPDF';
                     $rendererLibraryPath = APPPATH . 'third_party' . DIRECTORY_SEPARATOR . $rendererLibrary;
                     if (!PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) {
                         die('Please set the $rendererName: ' . $rendererName . ' and $rendererLibraryPath: ' . $rendererLibraryPath . ' values' . PHP_EOL . ' as appropriate for your directory structure');
                     }
                     header('Content-Type: application/pdf');
                     header('Content-Disposition: attachment;filename="' . $filename . '.pdf"');
                     header('Cache-Control: max-age=0');
                     $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'PDF');
                     return $objWriter->save('php://output');
                 }
                 if ($this->input->post('form_action') == 'export_excel') {
                     header('Content-Type: application/vnd.ms-excel');
                     header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
                     header('Cache-Control: max-age=0');
                     $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
                     return $objWriter->save('php://output');
                 }
                 redirect($_SERVER["HTTP_REFERER"]);
             }
         } else {
             $this->session->set_flashdata('error', $this->lang->line("no_customer_selected"));
             redirect($_SERVER["HTTP_REFERER"]);
         }
     } else {
         $this->session->set_flashdata('error', validation_errors());
         redirect($_SERVER["HTTP_REFERER"]);
     }
 }
Ejemplo n.º 19
0
 public function doalarmlisttopdf()
 {
     require_once dirname(__FILE__) . "/../Util/PHPExcel/PHPExcel/IOFactory.php";
     $session_id = $this->_request('session_id');
     $filename = $this->_request('file');
     if (empty($session_id) || empty($filename)) {
         return;
     }
     $objPHPExcel = $this->_exportData2Excel();
     $isPrint = $this->_request('action') == 'print';
     R('File/setfilepercent', array($filename, '正在准备PDF文件,以便开始' . ($isPrint ? '打印' : '预览') . '...'));
     ini_set("memory_limit", "1024M");
     //MPDF消耗内存比较厉害
     $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
     $rendererLibrary = 'mPDF5.4';
     $rendererLibraryPath = dirname(__FILE__) . '/../Util/MPDF54';
     PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
     $file = EXPORT_TEMP_PATH . $filename;
     $objPHPExcel->getActiveSheet()->setShowGridlines(false);
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
     //$objWriter应该是mPDF
     if ($isPrint) {
         $objWriter->setScript('try{this.print();}catch(e) {window.onload = window.print;}');
     }
     if ($_REQUEST['keeptemplate'] != 'true') {
         $objWriter->setPrintParams($this->_request('papersize'), $this->_request('orientation'), $_REQUEST['header1'], $_REQUEST['footer1'], $_REQUEST['header2'], $_REQUEST['footer2'], $this->_request('tmargin') + 0, $this->_request('bmargin') + 0, $this->_request('lmargin') + 0, $this->_request('rmargin') + 0, $this->_request('hmargin') + 0, $this->_request('fmargin') + 0, $_REQUEST['mirrormargins'] == 'true', $this->_request('customPaperWidth'), $this->_request('customPaperHeight'));
     }
     R('File/setfilepercent', array($filename, '正在保存PDF文件,以便开始' . ($isPrint ? '打印' : '预览') . '...'));
     // 		$objWriter->save('php://output');
     $objWriter->save('../' . $file);
     R('File/fileexit', array($filename));
 }
Ejemplo n.º 20
0
 /**
  * Set the pdf renderer
  * @throws \Exception
  */
 protected function setPdfRenderer()
 {
     // Get the driver name
     $driver = Config::get('excel.export.pdf.driver');
     $path = Config::get('excel.export.pdf.drivers.' . $driver . '.path');
     // Disable autoloading for dompdf
     if (!defined("DOMPDF_ENABLE_AUTOLOAD")) {
         define("DOMPDF_ENABLE_AUTOLOAD", false);
     }
     // Set the pdf renderer
     if (!\PHPExcel_Settings::setPdfRenderer($driver, $path)) {
         throw new \Exception("{$driver} could not be found. Make sure you've included it in your composer.json");
     }
 }
Ejemplo n.º 21
0
 public static function excelOutput(PHPExcel $excel, $name, $extension)
 {
     $contentType = '';
     $filename = $name . '.' . $extension;
     if ($extension == 'pdf') {
         $contentType = 'application/pdf';
         PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_MPDF, dirname(APPLICATION_PATH) . "/library/MPDF");
     } else {
         $contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
     }
     $writer = PHPExcel_IOFactory::createWriter($excel, $extension == 'pdf' ? 'PDF' : 'Excel2007');
     header('Content-Type: ' . $contentType);
     header('Content-Disposition: attachment;filename="' . $filename . '"');
     header('Cache-Control: max-age=0');
     $writer->save('php://output');
     die;
 }