在codeigniter中使用phpexcel

时间:2013-04-16 11:18:53

标签: codeigniter phpexcel

我正在使用phpexcel库将我的报告导出到excel文件。 但我想拥有自己的excel文件并将其与phpexcel一起使用。 这是我使用的代码:

public function event_reportexcel($id)
{
    $this->load->library('excel');
    $this->excel->setActiveSheetIndex(0);
    $this->excel->getActiveSheet()->setTitle('test worksheet');
    $this->excel->getActiveSheet()->setCellValue('A1', 'This is just some text value');
    $this->excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
    $this->excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
    $this->excel->getActiveSheet()->mergeCells('A1:D1');
    $this->excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

    $filename='just_some_random_name.xls'; //save our workbook as this file name
    header('Content-Type: application/vnd.ms-excel'); //mime type
    header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
    header('Cache-Control: max-age=0'); //no cache


    $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');  
    //force user to download the Excel file without writing it to server's HD
    $objWriter->save('php://output');
}

它会将我的数据放在一个新的excel文件中,但是我需要这个函数才能使用excel文件作为模板。

2 个答案:

答案 0 :(得分:3)

您可以根据需要打开文件并进行编辑,然后保存

$fileType = 'Excel5';
$fileName = 'testFile.xls';

// Read the file
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);

// Change the file
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B1', 'World!');

// Write the file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($fileName);

您可以查看此post了解详情。

答案 1 :(得分:0)

这会帮助你

 public function export(){

        $this->load->model('authors_model');
        $this->load->library('excel');

        $object = new PHPExcel();

        $object->setActiveSheetIndex(0);


         $table_columns = array('ID','first_name','last_name','Email','BirthDate','Added');

         $column = 1;

         foreach ($table_columns as $dd) {
            $object->getActiveSheet()->setCellValueByColumnAndRow($column,1, $dd);
              $column++;
         }


         $employee_data = $this->authors_model->get_all_data();

         $row_no = 2 ;
         foreach ($employee_data as  $value) {

                $object->getActiveSheet()->setCellValueByColumnAndRow(0 ,$row_no,$value->id );
                $object->getActiveSheet()->setCellValueByColumnAndRow(1 ,$row_no,$value->first_name );
                $object->getActiveSheet()->setCellValueByColumnAndRow(2 ,$row_no,$value->last_name );
                $object->getActiveSheet()->setCellValueByColumnAndRow(3 ,$row_no,$value->email );
                $object->getActiveSheet()->setCellValueByColumnAndRow(4 ,$row_no,$value->birthdate );
                $object->getActiveSheet()->setCellValueByColumnAndRow(5 ,$row_no,$value->added );

                $row_no++;
         }


             ob_end_clean(); 
              header('Content-Type: application/vnd.ms-excel'); //mime type

            header("Content-Disposition: attachment; filename=\"filename.xls\"");
            header("Cache-Control: max-age=0");
            $objWriter = PHPExcel_IOFactory::createWriter($object, 'Excel5');
              $objWriter->save('php://output');











}