PHPExcel讀取excel檔案

2022-08-16 12:42:10 字數 4348 閱讀 6496

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....