PHPExcel 讀取導入 excel2003,2007各個版本整理


最近在做一個php讀取excel存入數據庫的功能,於是用到了phpexcel,下載安裝以后只能讀取excel2003,2007以后的讀取不了,搜了很多很多方法,也用了不少時間,最后總結一下吧,希望幫助以后像我這樣的新手

首先讀取2007的時候 一直沒法load文件,最后發現好像是,沒有讀取權限吧?

說說解決方法吧

  1. 設置php.ini里面的open_basedir,把前面的;去掉,也就是取消注釋

這時又報錯了:PHPExcel 報 Allowed memory size of 8388608 byte

解決方法:

使用 phpExcel 報 Allowed memory size of 8388608 bytes exhausted 錯誤,原因是php頁面消耗的最大內存默認是為 8M (在PHP的ini件里可以看到) ,如果文件太大 或圖片太大 在讀取的時候 會發生上述錯誤。

解決辦法:

‍1,修改 php.ini 將memory_limit由 8M 改成 16M(或更大),重啟apache服務

2,在PHP 文件中 加入 ini_set('memory_limit','100M'); //100不行就寫10000 測試一下

注意:為了系統的其它資源的正常使用 請您不要將 memory_limit設置太大,其中-1為不限

3,修改.htaccess 文檔(前提是該目錄支持.htaccess) 在文檔中新增一句:php_value memory_limit 16M(或更大)

下面是一個測試頁面:

<?php
 ini_set('memory_limit','200M');                          //設置文件上傳大小
 require_once 'Classes/PHPExcel/IOFactory.php';
 $reader = PHPExcel_IOFactory::createReader('Excel2007'); // 讀取 excel 文件方式  此方法是讀取excel2007之前的版本 excel2007 為讀取2007以后的版本 也可以查\Classes\PHPExcel\Reader 文件夾中的類(為所有讀取類,需要哪個填上哪個就行)
 $resource = 'test.xlsx';
 if (!file_exists($resource)) {
  exit("$resource is not exists.\n");
 }
 $PHPExcel = $reader->load("test.xlsx"); // 文件名稱
 $sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表從0讀起
 $highestRow = $sheet->getHighestRow(); // 取得總行數
 $highestColumn = $sheet->getHighestColumn(); // 取得總列數
 echo $highestRow.$highestColumn;
 // 根據自己的數據表的大小修改
 $arr = array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F');

 // 每次讀取一行,再在行中循環每列的數值
 for ($row = 1; $row <= $highestRow; $row++) {
  for ($column = 0; $column < 6; $column++) {
   $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
   $list[$row][] = $val;
  }
 } 
 echo "<pre>".print_r($list)."</pre>";

?>

轉載自:http://www.9958.pw/post/phpexcel_2003_2007


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM