{"id":1634,"date":"2017-06-14T11:53:00","date_gmt":"2017-06-14T06:23:00","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=1634"},"modified":"2026-09-14T15:06:51","modified_gmt":"2026-09-14T09:36:51","slug":"codeigniter-importing-data-using-excel-file","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/codeigniter-importing-data-using-excel-file\/","title":{"rendered":"CodeIgniter Importing Data Using Excel File"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Importing data from an Excel file into a CodeIgniter application is a common requirement for applications that need to process bulk records. Instead of entering records manually, users can upload an Excel file and import multiple rows of data into the application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, we will explain how to implement Excel file importing in CodeIgniter using PHPExcel. The example demonstrates how to load an Excel file, read the spreadsheet data, and access individual column values.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before proceeding, make sure you have:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>A working CodeIgniter application.<\/li>\n\n\n\n<li>PHP installed and configured.<\/li>\n\n\n\n<li>Access to the CodeIgniter application directory.<\/li>\n\n\n\n<li>PHPExcel library.<\/li>\n\n\n\n<li>An Excel file containing the data to be imported.<br><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Implementation:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Step 1: Download the PHPExcel Library<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Download the PHPExcel library from its GitHub repository or the official PHPExcel website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can download the PHPExcel library from the following repository:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After downloading, extract the PHPExcel archive on your local system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step 2: Copy PHPExcel to CodeIgniter<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After extracting the PHPExcel library, you will find directories such as:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Classes\nDocumentation\nExamples<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to the <code>Classes<\/code> directory and copy the following into your CodeIgniter application&#8217;s <code>application\/third_party\/<\/code> directory:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step 3: Create the Excel Import Library<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">application\/libraries\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create a new file named:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ExcelImport_lib.php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following code to the file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?php\n if ( ! defined('BASEPATH')) exit('No direct script access allowed'); \n ini_set('error_reporting', E_STRICT); \n require_once APPPATH.\"\/third_party\/PHPExcel.php\"; \n class ExcelImport_lib extends PHPExcel \n { public function __construct() \n \t{ parent::__construct(); } \n } ?&gt;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Step4:<br><br>Navigate to application\/controllers and create new file name as ImportExcel.php,place following code here<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?php\nif ( ! defined('BASEPATH')) exit('No direct script access allowed'); \n\/**\n * summary\n *\/\nclass ImportExcel extends CI_Controller\n{\n    public function index()\n    {\n    \t$this-&gt;load-&gt;view('excelimport');\t\n    }\n    public function Import($value='')\n    {\n        $this-&gt;load-&gt;library('ExcelImport_lib');\n \t\t\t\n     try {\n    \/\/\/ it will be your file name that you are posting with a form or can pass static name $_FILES[\"file\"][\"name\"];\n     \t\/\/ $objPHPExcel = PHPExcel_IOFactory::load('uploads\/'.$_FILES[\"file\"][\"name\"]);\n     \t$objPHPExcel = PHPExcel_IOFactory::load('uploads\/'.'yourTableName.xls');\n\n         }\n     catch(Exception $e)\n        {\n           $this-&gt;resp-&gt;success = FALSE;\n           $this-&gt;resp-&gt;msg = 'Error Uploading file';\n           echo json_encode($this-&gt;resp);\n           exit;\n        }\n\n     $allDataInSheet = $objPHPExcel-&gt;getActiveSheet()-&gt;toArray(null,true,true,true);\n     print_r($allDataInSheet);\n    foreach($allDataInSheet as $import)\n    {\n      echo $import['A']; \/\/\/ will return values of Col A\n      echo $import['B']; \/\/\/ will return values of Col B\n      echo $import['C']; \/\/\/ will return values of Col C\n      echo $import['D']; \/\/\/ will return values of Col D\n\n    }\n    }\n}\n\n?&gt;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Step5:<br>Navigate to application\/view and create new file name as excelimport.php,place following code here<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?php<br>defined('BASEPATH') OR exit('No direct script access allowed');<br>?&gt;&lt;!DOCTYPE html&gt;<br>&lt;html lang=\"en\"&gt;<br>&lt;head&gt;<br>  &lt;meta charset=\"utf-8\"&gt;<br>  &lt;title&gt;Welcome to CodeIgniter&lt;\/title&gt;<br><br>  &lt;style type=\"text\/css\"&gt;<br><br>  ::selection { background-color: #E13300; color: white; }<br>  ::-moz-selection { background-color: #E13300; color: white; }<br><br>  body {<br>    background-color: #fff;<br>    margin: 40px;<br>    font: 13px\/20px normal Helvetica, Arial, sans-serif;<br>    color: #4F5155;<br>  }<br><br>  a {<br>    color: #003399;<br>    background-color: transparent;<br>    font-weight: normal;<br>  }<br><br>  h1 {<br>    color: #444;<br>    background-color: transparent;<br>    border-bottom: 1px solid #D0D0D0;<br>    font-size: 19px;<br>    font-weight: normal;<br>    margin: 0 0 14px 0;<br>    padding: 14px 15px 10px 15px;<br>  }<br><br>  code {<br>    font-family: Consolas, Monaco, Courier New, Courier, monospace;<br>    font-size: 12px;<br>    background-color: #f9f9f9;<br>    border: 1px solid #D0D0D0;<br>    color: #002166;<br>    display: block;<br>    margin: 14px 0 14px 0;<br>    padding: 12px 10px 12px 10px;<br>  }<br><br>  #body {<br>    margin: 0 15px 0 15px;<br>  }<br><br>  p.footer {<br>    text-align: right;<br>    font-size: 11px;<br>    border-top: 1px solid #D0D0D0;<br>    line-height: 32px;<br>    padding: 0 10px 0 10px;<br>    margin: 20px 0 0 0;<br>  }<br><br>  #container {<br>    margin: 10px;<br>    border: 1px solid #D0D0D0;<br>    box-shadow: 0 0 8px #D0D0D0;<br>  }<br>  &lt;\/style&gt;<br>&lt;\/head&gt;<br>&lt;body&gt;<br><br>Welcome to CodeIgniter!\" enctype=\"multipart\/form-data\" method=\"POST\" role=\"form\"&gt;<br>    Form title<br>    Click to Read<br>&lt;\/body&gt;<br>&lt;\/html&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Excel importing makes it much easier to handle bulk data in a CodeIgniter application. Using PHPExcel, we can load an Excel file, convert the spreadsheet into an array, read individual columns, and insert the data into a database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The basic workflow is:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Upload Excel File\n        \u2193\nRead Excel File\n        \u2193\nConvert Spreadsheet to Array\n        \u2193\nValidate Data\n        \u2193\nInsert\/Update Database\n        \u2193\nDisplay Import Result<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">FAQs<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">1. Can I import both XLS and XLSX files?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. PHPExcel can work with both older <code>.xls<\/code> files and <code>.xlsx<\/code> files, provided the appropriate reader is available.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">2. Can I upload the Excel file instead of specifying a fixed filename?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. You can use PHP&#8217;s <code>$_FILES<\/code> to process the file uploaded through an HTML form.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">3. Where should I place PHPExcel in CodeIgniter?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">For the approach shown in this tutorial, place the required PHPExcel files inside:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">application\/third_party\/<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">4. How can I access Excel columns?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">PHPExcel returns columns using Excel-style column names:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$row['A'];<br>$row['B'];<br>$row['C'];<br>$row['D'];<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">5. Can I insert the imported data into MySQL?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. After reading and validating each row, you can use CodeIgniter&#8217;s database methods such as:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$this-&gt;db-&gt;insert('users', $data);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Related Article<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-add-google-recaptcha-in-php-codeigniter\/\">How to add Google ReCAPTCHA in PHP Codeigniter \u2013 Pheonix Solutions<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/upload-file-using-codeigniter-framework\/\">UPLOAD FILE USING CODEIGNITER FRAMEWORK \u2013 Pheonix Solutions<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Talk to our experts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Looking for the right technology solution for your business? Our team of experts can help you with development, cloud, DevOps, design, and a wide range of other technology needs. Get in touch with our team&nbsp;<a href=\"https:\/\/pheonixsolutions.com\/contact\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Importing data from an Excel file into a CodeIgniter application is a common requirement for applications that need to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1022],"tags":[281,273],"class_list":["post-1634","post","type-post","status-publish","format-standard","hentry","category-web-architecture","tag-codedeploy","tag-php","psol-cat-web-architecture"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-qm","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=1634"}],"version-history":[{"count":6,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1634\/revisions"}],"predecessor-version":[{"id":11754,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1634\/revisions\/11754"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=1634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=1634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=1634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}