phpexcel是個很強大的類庫,以前只使用過它生成excel檔案,非常方便。
今天接到個專案要讀取excel的檔案,以前也做過excel轉換寫入資料庫的工作,
不過相對簡單一些,是轉換成csv格式再進行解析的。
包含phpexcel類庫檔案,如果不能確定檔案型別的話可以使用phpexcel_iofactory::identify方法返回檔案的型別,傳遞給該函式乙個檔名就可以。
然後根據返回的檔案型別建立該型別的讀取物件,進行檔案的load。
之後就可以進行資料的讀取了,
具體**如下所示:
<?php
require_once(『include/common.inc.php』);
require_once(rootpath . 『include/phpexcel/phpexcel/iofactory.php』);
$filepath = 『./file/xls/110713.xls』;
$filetype = phpexcel_iofactory::identify($filepath); //檔名自動判斷檔案型別
$objreader = phpexcel_iofactory::createreader($filetype);
$objphpexcel = $objreader->load($filepath);
$currentsheet = $objphpexcel->getsheet(0); //第乙個工作簿
$allrow = $currentsheet->gethighestrow(); //行數
$output = array();
$pretype = 」;
$qh = $currentsheet->getcell(『a4′)->getvalue();
//按照檔案格式從第7行開始迴圈讀取資料
for($currentrow = 7;$currentrow<=$allrow;$currentrow++)
//從當前行開始往下迴圈,取出第乙個不為空的行
for( ; ; $currentrow++)
for( ; $currentrow <= $allrow; $currentrow++)
header(「content-type:text/html; charset=utf-8″);
echo 『期號:』 . $qh . 「\n\n」;
if(!empty($output))
}?>
/** 將excel轉換為陣列 by aibhsc
* */
require(root_path . 'includes/phpexcel.php');//引入php excel類
function format_excel2array($filepath='',$sheet=0)
$phpreader = new phpexcel_reader_excel2007(); //建立reader物件
if(!$phpreader->canread($filepath))
}$phpexcel = $phpreader->load($filepath); //建立excel物件
$currentsheet = $phpexcel->getsheet($sheet); //**讀取excel檔案中的指定工作表*/
$allcolumn = $currentsheet->gethighestcolumn(); //**取得最大的列號*/
$allrow = $currentsheet->gethighestrow(); //**取得一共有多少行*/
$data = array();
for($rowindex=1;$rowindex<=$allrow;$rowindex++)
$data[$rowindex][$colindex] = $cell;}}
return $data;}
使用方法:
$filepath = root_path.'data/diamondstock.xlsx'; //鑽石庫存盤案
$data = format_excel2array($filepath);
print_r($data);die;
輸出結果示例:
array
( [1] => array
([a] => 商品編號
[b] => 商品名稱
[c] => 總重量
[d] => 進貨**
[e] => 銷售**
[f] => 4c備註
)[2] => array
([a] => 10001
[b] => gia-2156685995
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[3] => array
([a] => 10002
[b] => gia-2156685996
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[4] => array
([a] => 10003
[b] => gia-2156685997
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[5] => array
([a] => 10004
[b] => gia-2156685998
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[6] => array
([a] => 10005
[b] => gia-2156685999
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[7] => array
([a] => 10006
[b] => gia-2156686000
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[8] => array
([a] => 10007
[b] => gia-2156686001
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[9] => array
([a] => 10008
[b] => gia-2156686002
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[10] => array
([a] => 10009
[b] => gia-2156686003
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[11] => array
([a] => 10010
[b] => gia-2156686004
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[12] => array
([a] => 10011
[b] => gia-2156686005
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[13] => array
([a] => 10012
[b] => gia-2156686006
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
)[14] => array
([a] => 10013
[b] => gia-2156686007
[c] => 0.7
[d] => 1760
[e] => 1848
[f] => g色、0.7ct、si1、fr
))
PHPExcel 讀取Excel檔案
讀取excel檔案內容 dir str replace dirname file 當前檔案目錄 require once dir.phpexcel iofactory.php 引入excel類庫檔案 filename dir.browser.xls 操作的excel檔案 excelobj phpex...
PHPExcel讀取excel檔案
之前的博文已經對phpexcel匯出excel檔案做了簡單的總結,現對他讀取excel做以下總結。對資料量不會很大的建可以採用web直接用此方法讀取,如果資料量會很大的話,還是建議web只做上傳功能,讀取 處理還是放後台吧。phpexcel還是比較耗費時間 記憶體的。例項 php 首先匯入phpex...
PHPExcel讀取Excel檔案
用phpexcel讀取excel 2007 或者excel2003檔案 涉及知識點 php對excel檔案進行迴圈讀取 php對字元進行ascii編碼轉化,將字元轉為十進位制數 php對excel日期格式讀取,並進行顯示轉化 php對漢字亂碼進行編碼轉化 require once phpexcel....