PHPExcel读取表格

---

先引入类IOFactory.php

    require_once '../PHPExcel/IOFactory.php';$filePath = "test.xlsx";  // 测试文件

加载测试文件
 
 1.$inputFileType = PHPExcel_IOFactory::identify($filePath) 判断文件类型
 2. $objReader = PHPExcel_IOFactory::createReader($inputFileType); 实例化类型对象
 3. $objPHPExcel = $objReader->load($filePath); 加载文件

下面主要判断Excel2007和Excel5类型,即xlsx/xlsm/xltx/xltm和xls/xlt格式文件

try {$inputFileType = PHPExcel_IOFactory::identify($filePath);if ($inputFileType !== "Excel5" && $inputFileType !== "Excel2007" ) {unlink($filePath) && str_alert(-1,"请确保导入的文件格式正确!");}$objReader = PHPExcel_IOFactory::createReader($inputFileType);$objPHPExcel = $objReader->load($filePath);
} catch(Exception $e) {unlink($filePath) && str_alert(-1,'加载文件发生错误:”'.pathinfo($filePath,PATHINFO_BASENAME).'”: '.$e->getMessage());
}

获取当前工作表

$sheet = $objPHPExcel->getSheet(0);

或者

$sheet = $objPHPExcel->getActiveSheet();

获取工作表行数和列数

$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();

注意:有时候你会发现你的表格明明有内容的行数就5行,但是获取到的$highestRow却有7,8行或者更多,这可能是因为你在操作你的表格的时候不小心点击了其它行数,虽然没有填写内容,但getHighestRow也是能够识别出行数;

想要获取有内容的行数应该使用getHighestDataRow和getHighestDataColumn,

源码注释是这样介绍的string Highest row number that contains data,即包含数据的字符串最高行数.

单元格具体内容

xlsx类型的表格单元格是通过类似xy轴坐标来获取的,
可通过类似

$sheet->getCell("A1")->getValue();
$sheet->getCell("B2")->getValue();

获取相应位置的内容,
  如果不想通过字母了来遍历获取,可以用数字索引方法

$sheet->getCellByColumnAndRow(0,1);
$sheet->getCellByColumnAndRow(1,2);

注意坐标中第一个参数从0开始,0代表A,1代表B...,第二个参数从1开始.
 下面是遍历表格获取全部单元格内容:

$dataSet=array();
for ($column = "A"; $column <= $highestColumn; $column++) {//列数是以A列开始for ($row = 4; $row <= $highestRow; $row++) { //行数是以第4行开始$cell = $sheet->getCell($column . $row)->getValue();if($cell instanceof PHPExcel_RichText) { //富文本转换字符串$cell = $cell->__toString();}$dataSet[$row][] = $cell;}
}

其中富文本转换字符串,是使用$cell instanceof PHPExcel_RichText判断是否为富文本,查阅资料发现如果你的单元格中字符串包含两种以上的字体会自动被设为富文本,这时候需要__toString()转换

判断合并单元格是否位于最左上角

当我们循环输出所有单元格后发现,一些被合并的单元格只有最左上坐标的是有内容的,其他都是null
例如A4,A5合并成一个单元格,getCell("A4")是有正常内容的,但是getCell("A5")是null.
isMergeRangeValueCell可以用来判断某个具体的单元格是否为最左上角

$sheet->getCell('A' . $row)->isMergeRangeValueCell()

当$row为4的时候是返回true,5的时候返回false

转换时间

获取表格中时间格式的内容,需要PHPExcel_Shared_Date::ExcelToPHP()来转换为php可识别的时间格式

date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sometime);

PHPExcel读取表格内容相关推荐

  1. (PHPExcel)读取表格中数据

    在实际项目中常常会读取文件或表格中的数据,本篇文章简要介绍了如何使用PHPExcel读取Excel表格中的数据. 首先需要获取PHPExcel对象,即,$this->objPHPExcel = ...

  2. PHPExcel 读取表格数据

    下载 点击下载 PHPExcel 包 代码 // 读取 excel 内容 $excel_data = $this->readFromExcel($_FILES['file']['tmp_name ...

  3. php excel 获取列数,利用PHPEXCEL读取EXCEL内容,主要是读取EXCEL可用列数 | 学步园...

    require_once '../Classes/PHPExcel.php'; $objPHPExcel = PHPExcel_IOFactory::load('simple.xls'); $objA ...

  4. PHPExcel 读取文件内容

    //声明header头部 header("Content-type:text/html;charset=utf-8"); //引入类库 //include "Classe ...

  5. php获取excel表格内容,利用PHPExcel如何读取表格中内容

    利用PHPExcel如何读取表格的内容呢?话不多说,下面的这篇文章将给大家详细的介绍关于PHPExcel读取表格中内容的方法. 先引入类IOFactory.phprequire_once '../PH ...

  6. 读取Word文档的各种复杂表格内容

    工作上遇到如何读取Word文档中的表格内容,表格是有业务数据意义的,而且有一定规则的,因此不能直接读取表格文本,而是遍历表格单元格进行一行一列读取. 表格规则: (1)表格可以有表头,表头也有业务意思 ...

  7. python:openpyxl实现表格内容的读取和精准写入

    需求 再想想,是读取一份表格内容对应数据填入到另一份表格数据,实现精准写入,还有一个注意点就是表格公司不能破坏,写入的数据可以自动被表格内的公式计算 思路 对于表格的操作,我第一个想到的就是panda ...

  8. php 浏览器打开excel文件夹里,php网页显示excel表格数据-phpexcel 读取excel里的数据并在页面显示出来...

    网页如何调用excel表格中的数据? $retdata=array(); //内容 //二维数 $filename= "文.csv"; //生成头文件 $now = gmdate( ...

  9. php 读写excel 网络错误,谁用过PHPExcel,导出的文件报“无法读取的内容”错误

    如题 ,我测试过了,如果导出的单元格数比较少,大概是150左右,就没问题,一切正常. 但导出的单元格数一旦大于150了,导出的excel文件就打不开,打开的时候报错"找到无法读取的内容&qu ...

最新文章

  1. 2020-08-20 将数据上传到 S3 或从S3下载
  2. 自然语言处理NLP基本知识小结
  3. 形象理解操作系统的进程与线程
  4. DB1:数据库的创建和文件的修改
  5. python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...
  6. 开发短视频APP跟上时代的快车
  7. Xshell分屏显示
  8. 虚拟化Java应用程序:最佳实践(JavaOne 2011)
  9. 【OpenCV】OpenCV函数精讲之 -- createTrackbar()函数、getTrackbarPos()函数
  10. Hadoop集群环境下网络架构的设计与优化
  11. Android开发笔记(一百一十二)开发工具
  12. HTML5 -- WebSocket
  13. Oracle CRS/ASM/RAC版本兼容对应表
  14. 照葫芦画瓢-string(字符)
  15. 五子棋算杀c语言,什么是五子棋的做杀
  16. 它!5 年代替狂卷的 CNN!
  17. 何宾 单片机原理及应用_单片机原理及应用课后答案讲解
  18. 通过计算机和网络进行整个商务贸易活动,电子商务概论
  19. 【转载】com.mysql.jdbc.Driver 与 org.gjt.mm.mysql.Driver的区别
  20. 我的世界电脑版怎么下载java_我的世界端游java版怎么下载

热门文章

  1. IOST与Gravity达成战略合作,链接Gravity网络携手开发跨链集成
  2. PTC指定位置安装许可服务器,proe野火3.0安装问题之“许可证管理已成功安装,但不能启动,请参阅日志文件..”我自己的解决方案(原...
  3. 汽车电商纷纷折戟,新零售能唱好这出戏吗?
  4. springboot 集成redis key乱码\xac\xed\x00\x05t\x00\x0eHAOKE_HOT_WORD
  5. Java学习的第一道垲
  6. 免费发匿名信匿名短信的教程
  7. Power BI 的 各种限制 和 DataFlow模式
  8. SEO搜索引擎优化-引擎排名
  9. 从零开始,用5年时间,攒够100w,如何够到800w 上海房
  10. 苹果cms模板_苹果cms手机模板好看的有哪些?