欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHPExcel读取excel资料

程序员文章站 2022-06-12 11:36:09
...
PHPExcel读取excel文件

????? 之前的博文已经对PHPExcel导出excel文件做了简单的总结,现对他读取excel做以下总结。(对数据量不会很大的建可以采用web直接用此方法读取,如果数据量会很大的话,还是建议web只做上传功能,读取、处理还是放后台吧。PHPExcel还是比较耗费时间、内存的。)

?

实例代码:

?

//首先导入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;$rowIndexgetCell($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资料

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频