Date Posted:13-06-2017
In this post  we will explain export data from database using PHPExcel libary
I assume that you are configure or setup the codeigniter

Step 1:Create the mysql table currency,use following code

-- phpMyAdmin SQL Dump
-- version 3.5.2.2
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Jun 13, 2017 at 02:38 PM
-- Server version: 5.5.27
-- PHP Version: 5.4.7

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `chatigniter`
--

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `avatar` varchar(255) NOT NULL,
  `online` enum('1','0') NOT NULL DEFAULT '1',
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `firstname`, `lastname`, `email`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES
(1, 'test', 'ytest', 'k@gmail.com', 'karthik', '', '', '1', '0000-00-00 00:00:00', '0000-00-00 00:00:00')
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

step2:Download PHPExcel libarry from it’s github repository or you can download it from PHPExcel official website.
Dwonload PHPExcel library
Dwonload PHPExcel library from GIThub repository from https://phpexcel.codeplex.com/

Step3:

After download you find three differnt folder Classes,Documentation,Examples in PHPExcel.navigate to application/thirdparty extract PHPExcel->Classes->PHPExcel.php and PHPExcel directory directory here.

Step4:
Navigate to application/libraries and create new file name as ExcelExport_lib.php,place following code here

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Excel {

    private $excel;

    public function __construct() {
        require_once APPPATH . 'third_party/PHPExcel.php';
        $this->excel = new PHPExcel();
    }

    public function load($path) {
        $objReader = PHPExcel_IOFactory::createReader('Excel5');
        $this->excel = $objReader->load($path);
    }

    public function save($path) {
        $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
        $objWriter->save($path);
    }

    public function stream($filename, $data = null) {

        if ($data != null) {
            $col = 'A';
            foreach ($data[0] as $key => $val) {
                $objRichText = new PHPExcel_RichText();
                $objPayable = $objRichText->createTextRun(str_replace("_", " ", $key));
                $this->excel->getActiveSheet()->getCell($col . '1')->setValue($objRichText);
                $col++;
            }
            $rowNumber = 2;
            foreach ($data as $row) {
                $col = 'A';
                foreach ($row as $cell) {
                    $this->excel->getActiveSheet()->setCellValue($col . $rowNumber, $cell);
                    $col++;
                }
                $rowNumber++;
            }
        }
        header('Content-type: application/ms-excel');
        header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
        header("Cache-control: private");
        $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
       // $objWriter->save("export/$filename");
        $objWriter->save('php://output'); //change by Pavan
        header("location: " . base_url() . "export/$filename");
       // unlink(base_url() . "export/$filename");
    }

    public function __call($name, $arguments) {
        if (method_exists($this->excel, $name)) {
            return call_user_func_array(array($this->excel, $name), $arguments);
        }
        return null;
    }
}

Step5:
Navigate to application/controllers and create new file name as ExportExcel.php,place following code here

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
/**
 * summary
 */
class ExportExcel extends CI_Controller
{
    public function index()
    {
    	$this->load->view('excelexport');	
    }
    public function Export()
    {
        $this->load->library('excelexport_lib');
 			
     	
        $assign_res_data =$this->db->get('users')->result();

        // print_r($assign_res_data);die;
        $title = date('Y-m-d')."_"."AssignmentReport" ;

        /*export data in exlsheet start*/
            $this->excelexport_lib->setActiveSheetIndex(0);
            //name the worksheet
            $this->excelexport_lib->getActiveSheet()->setTitle($title);
          //make the font become bold
            $this->excelexport_lib->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
            $this->excelexport_lib->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
            $this->excelexport_lib->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('#5545');



             for($col = ord('A'); $col <= ord('H'); $col++)
             {	
                  //set column dimension
                  $this->excelexport_lib->getActiveSheet()->getColumnDimension(chr($col))->setAutoSize(true);
                   //change the font size
                  $this->excelexport_lib->getActiveSheet()->getStyle(chr($col))->getFont()->setSize(12);
                   
                  $this->excelexport_lib->getActiveSheet()->getStyle(chr($col))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
              }  
        $this->excelexport_lib->stream($title.'.xls', $assign_res_data);
    }
}

?>

Step6:
Navigate to application/view and create new file name as excelexport.php,place following code here

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Welcome to Export Database</title>

    <style type="text/css">

    ::selection { background-color: #E13300; color: white; }
    ::-moz-selection { background-color: #E13300; color: white; }

    body {
        background-color: #fff;
        margin: 40px;
        font: 13px/20px normal Helvetica, Arial, sans-serif;
        color: #4F5155;
    }

    a {
        color: #003399;
        background-color: transparent;
        font-weight: normal;
    }

    h1 {
        color: #444;
        background-color: transparent;
        border-bottom: 1px solid #D0D0D0;
        font-size: 19px;
        font-weight: normal;
        margin: 0 0 14px 0;
        padding: 14px 15px 10px 15px;
    }

    code {
        font-family: Consolas, Monaco, Courier New, Courier, monospace;
        font-size: 12px;
        background-color: #f9f9f9;
        border: 1px solid #D0D0D0;
        color: #002166;
        display: block;
        margin: 14px 0 14px 0;
        padding: 12px 10px 12px 10px;
    }

    #body {
        margin: 0 15px 0 15px;
    }

    p.footer {
        text-align: right;
        font-size: 11px;
        border-top: 1px solid #D0D0D0;
        line-height: 32px;
        padding: 0 10px 0 10px;
        margin: 20px 0 0 0;
    }

    #container {
        margin: 10px;
        border: 1px solid #D0D0D0;
        box-shadow: 0 0 8px #D0D0D0;
    }
    </style>
</head>
<body>

Export Excel!

" enctype="multipart/form-data" method="POST" role="form">
</body> </html>

 

Leave a Reply