先引入类IOFactory.php
1 | require_once '../PHPExcel/IOFactory.php'; |
加载测试文件
- $inputFileType = PHPExcel_IOFactory::identify($filePath) 判断文件类型
- $objReader = PHPExcel_IOFactory::createReader($inputFileType); 实例化类型对象
- $objPHPExcel = $objReader->load($filePath); 加载文件
下面主要判断Excel2007和Excel5类型,即xlsx/xlsm/xltx/xltm和xls/xlt格式文件
1 | try { |
获取当前工作表
1 | $sheet = $objPHPExcel->getSheet(0); |
注意:有时候你会发现你的表格明明有内容的行数就5行,但是获取到的$highestRow却有7,8行或者更多,这可能是因为你在操作你的表格的时候不小心点击了其它行数,虽然没有填写内容,但getHighestRow也是能够识别出行数;
想要获取有内容的行数应该使用getHighestDataRow和getHighestDataColumn
源码注释是这样介绍的string Highest row number that contains data,即包含数据的字符串最高行数.
单元格具体内容
xlsx类型的表格单元格是通过类似xy轴坐标来获取的,
可通过类似
1 | $sheet->getCell("A1")->getValue(); |
获取相应位置的内容,
如果不想通过字母了来遍历获取,可以用数字索引方法
1 | $sheet->getCellByColumnAndRow(0,1); |
注意坐标中第一个参数从0开始,0代表A,1代表B…,第二个参数从1开始.
下面是遍历表格获取全部单元格内容:
1 | $dataSet=array(); |
当$row为4的时候是返回true,5的时候返回false
转换时间
获取表格中时间格式的内容,需要PHPExcel_Shared_Date::ExcelToPHP()来转换为php可识别的时间格式
1 | date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sometime); |