php讀取excel 列數大於Z時讀取不到

2021-09-06 09:38:45 字數 1187 閱讀 9912

之前寫了乙個需求,要求將後台上傳的excel中的內容讀取出來並入庫,剛開始測試的時候沒有問題,但是到線上開始上傳的時候卻報錯,一開始百思不得其解,後來一點一點打斷點除錯的時候發現了問題

我原本的迴圈是將 i(初始值)設為』a』 , 讀取檔案最大列號 作為迴圈終止條件, 然後自加迴圈

因為我在本地測試的excel沒有超過26列, 也就是在z列之前 沒有aa列及以後的情況, 所以測試一直都沒有問題

當迴圈的時候aa的時候就沒有辦法識別,結果總是個0,然後開始上網找各種解決辦法

總結如下

主要是利用excel擴充套件中的乙個方法

phpexcel_cell::columnindexfromstring($allcolumn)  //將列數轉換為數字 列數大於z的必須轉  a->1  aa->27
具體**如下

private function getexceldata()

}$phpexcel = $phpreader->load($file);

$currentsheet = $phpexcel->getsheet(0);//讀取第乙個工作表

$allrow = $currentsheet->gethighestrow();//取得一共有多少行

//這兩段很重要

$allcolumn = $currentsheet->gethighestcolumn();//取得最大的列號

$allcolumn = \phpexcel_cell::columnindexfromstring($allcolumn);//將列數轉換為數字 列數大於z的必須轉 a->1 aa->27

$arr = ;

//從第一行開始讀 第一行為標題

for ($currentrow = 1; $currentrow <= $allrow; $currentrow++)

}//刪除全部為空的行

foreach ($arr as $key => $vals)

if (!$tmp) unset($arr[$key]);

}return $arr;

}

最重要的地方就是將列號轉換為數字 之前報錯因為這裡沒有加

*先將字母列數轉換成對應數字

plan1 是將數字再轉換成字母 然後拼接行號進行讀取

plan2 是使用數字直接讀取 不需要轉換成字母

PHP讀取Excel資料

承接上篇 設定reader和編碼 file path test.xls excel5 reader new phpexcel reader excel5 excel5 reader defaultencoding encoding excel2007 reader new phpexcel read...

PHP讀取excel文件

php讀取excel文件 phpexcelreader比較輕量級,僅支援excel的讀取,實際上就是乙個reader。但是可惜的是不能夠支援excel 2007的格式 xlsx phpexcel比較強大,能夠將記憶體中的資料輸出成excel檔案,同時還能夠對excel做各種操作,下面主要介紹下如何使...

php讀取excel內容

使用php讀取到excel檔案中的內容 2.header content type text html charset utf 8 require once phpexcel classes phpexcel iofactory.php path test.xlsx objphpexcel phpe...