phpexcel读取excel文件实例分享

发布时间:2020-04-26编辑:脚本学堂
本文介绍了phpexcel类库读取excel文件的方法,对phpexcel类库不熟悉的朋友,可以阅读下《phpexcel中文帮助手册》中的内容,具体实例大家可以phpexcel快速开发指南中的相关例子。

php phpexcel读取excel文件

之前对phpexcel导出excel文件做过介绍,现在对使用phpexcel类库读取excel文件的方法做下总结。

对数据量不会很大的建可以采用web直接用此方法读取,如果数据量会很大的话,还是建议web只做上传功能,读取、处理还是放后台吧。
phpexcel还是比较耗费时间、内存的。

对phpexcel类库不熟悉的朋友,可以阅读下《phpexcel中文帮助手册》中的内容,具体实例大家可以phpexcel快速开发指南中的相关例子。

例子,php读取excel文件。
 

复制代码 代码示例:
//导入phpexcel 
require_once 'phpexcel.php'; 
 
$filepath = "test.xlsx"; 
 
//建立reader对象 
$phpreader = new phpexcel_reader_excel2007(); 
if(!$phpreader->canread($filepath)){ 
    $phpreader = new phpexcel_reader_excel5(); 
    if(!$phpreader->canread($filepath)){ 
        echo 'no excel'; 
        return ; 
    } 

 
//建立excel对象,此时你即可以通过excel对象读取文件,也可以通过它写入文件 
$phpexcel = $phpreader->load($filepath); 
 
/**读取excel文件中的第一个工作表*/ 
$currentsheet = $phpexcel->getsheet(0); 
/**取得最大的列号*/ 
$allcolumn = $currentsheet->gethighestcolumn(); 
/**取得一共有多少行*/ 
$allrow = $currentsheet->gethighestrow(); 
 
//循环读取每个单元格的内容。注意行从1开始,列从a开始 
for($rowindex=1;$rowindex<=$allrow;$rowindex++){ 
    for($colindex='a';$colindex<=$allcolumn;$colindex++){ 
        $addr = $colindex.$rowindex; 
        $cell = $currentsheet->getcell($addr)->getvalue(); 
        if($cell instanceof phpexcel_richtext)     //富文本转换字符串 
            $cell = $cell->__tostring();
        echo $cell;
    }

 

说明,以上注释中的“富文本转换字符串”。
phpexcel读取excel文件中,如果单元格中的内容有两种字体时,读到的是富文本的对象:

例如:
单元格中有内容:“测试1”,其中前半部分的“测试”字体为宋体,后半部分的“1”字体为calibri。
此时通过 $cell = $sheet->getcell($addr)->getvalue(); 获取单元格的值。并打印:
完整代码:
 

复制代码 代码示例:
phpexcel_richtext object( 
    [_richtextelements:private] => array 
    ( 
            [0] => phpexcel_richtext_textelement object ([_text:private] => 测试) 
                     [1] => phpexcel_richtext_run object 
                     ( 
                        [_font:private] => phpexcel_style_font object 
                               ( 
                                    [_name:private] => calibri 
                                        [_size:private] => 11 
                                        [_bold:private] =>  
                                        [_italic:private] =>  
                                        [_superscript:private] =>  
                                        [_subscript:private] =>  
                                        [_underline:private] => none 
                                        [_strikethrough:private] =>  
                                        [_color:private] => phpexcel_style_color object 
                                        ( 
                                            [_argb:private] => ff000000 
                                            [_issupervisor:private] =>  
                                            [_parent:private] =>  
                                            [_parentpropertyname:private] =>  
                                        ) 
                                        [_parentpropertyname:private] =>  
                                        [_issupervisor:private] =>  
                                        [_parent:private] =>  
                                        [colorindex] => 8 
                                    ) 
                                    [_text:private] => 1 
                                ) 
                        ) 
                ) 
 

可以看到对这样的单元格不能直接读取单元格的文本内容。(注:这里的富文本是我自己的翻译,不知对否)。
另外,读取单元格的函数还有:
 

复制代码 代码示例:
//列从0开始,行从1开始
$currentsheet ->getcellbycolumnandrow($colindex,$rowindex)->getvalue();

以上就是phpexcel读取excel文件的方法,希望对大家有所帮助。