工作中进行excel的时候遇到了两个问题,

1.excel表中列值过大,由于没有进行特殊处理,程序没法正常运行;

2.列值中含有日期格式的文本,不能正确读取;

所以通过网络搜索,并解决了问题,记录一下,以备后用:

解决方法:

/****知识点总结*****
1.列数值过大,可以通过 PHPExcel_Cell::columnIndexFromString($column),获取最大列的数值

2.针对表格中有日期的,可以通过PHPExcel_Shared_Date::ExcelToPHP($value) 进行格式化,
如获取一个日期值,可如下面语句进行获取:
$date = gmdate("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell($column.$row)->getValue()));

*******************/

<?php
//PHPExcel类获取地址 https://github.com/PHPOffice/PHPExcel
//引入PHPExcel类文件
include_once './PHPExcel.php';
//读取的excel文件
$excelFile = './test.xlsx';/**实例化读取excel文件类,根据excel版本进行不同获取,下面是不同方式*/
/***//Excel5方式$objReader = new PHPExcel_Reader_Excel5();$objReader = PHPExcel_IOFactory::createWriter('Excel5');//Excel2007方式$objReader = new PHPExcel_Reader_Excel2007();$objReader = PHPExcel_IOFactory::createWriter('Excel2007');
***///由于我的文件是07版本,所以使用Excel2007方式
$objReader = PHPExcel_IOFactory::createReader('Excel2007');//载入excel文件
$objPHPExcel = $objReader->load($excelFile);//读取excel的第一个工作表
$sheet = $objPHPExcel->getSheet(0);//取得总行数
$highestRow = $sheet->getHighestRow();//取得总列数
$highestColumm = $sheet->getHighestColumn();//获取最大列值字母对应的数值
$highestColummNum = PHPExcel_Cell::columnIndexFromString($highestColumm);if (!$highestRow || !$highestColumm) {exit('表中无数据');
}//获取表格值进行存储
$dataExcel = array();$i = 0;
//如果列值过大,进行计算,
if ($highestColummNum > 26) {//循环读取每个单元格的数据for ($row = 2; $row <= $highestRow; $row++) {//行数是以第2行开始for ($column = 'A'; PHPExcel_Cell::columnIndexFromString($column) <= $highestColummNum; $column++) {//列数是以A列开始if ($column == 'E') {//假设第E列是日期$dataExcel[$i][] = gmdate("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell($column.$row)->getValue()));} else {$dataExcel[$i][] = $sheet->getCell($column.$row)->getValue();}}$i++;}
} else {//循环读取每个单元格的数据for ($row = 2; $row <= $highestRow; $row++) {//行数是以第2行开始for ($column = 'A';$column <= $highestColumm; $column++) {//列数是以A列开始if ($column == 'E') {//假设第E列是日期$dataExcel[$i][] = gmdate("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell($column.$row)->getValue()));} else {$dataExcel[$i][] = $sheet->getCell($column.$row)->getValue();}}$i++;}
}if (!$dataExcel) {exit('未获取任何数据');
}print_r($dataExcel);
exit;/****知识点总结*****
1.列数值过大,可以通过 PHPExcel_Cell::columnIndexFromString($column),获取最大列的数值2.针对表格中有日期的,可以通过PHPExcel_Shared_Date::ExcelToPHP($value) 进行格式化,
如获取一个日期值,可如下面语句进行获取:
$date = gmdate("Y-m-d H:i:s", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell($column.$row)->getValue()));*******************/
?>

转载于:https://www.cnblogs.com/joshua317/p/6852570.html

PHPExcel所遇到问题的知识点总结相关推荐

  1. php循环读取excel每个单元格,php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)...

    error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); include_once('Classes/PHPExcel/I ...

  2. php excel导出sheet表,phpexcel来做表格导出(多个工作sheet)

    1.先得去下载phpexcel文档,加压下来 /** * 简单实用Execl */ set_include_path('.'.get_include_path().PATH_SEPARATOR.dir ...

  3. 解释型语言与编译型的必须知识点

    解释型语言与编译型的必须知识点 概念: 计算机不能理解直接理解高级语言,只能理解机器语言,所以必须把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种: 编译 解释 两种翻译 ...

  4. YOLOV4知识点分析(二)

    YOLOV4知识点分析(二) 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org/ab ...

  5. YOLOV4知识点分析(一)

    YOLOV4知识点分析(一) 简 介 yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection arxiv:https://arx ...

  6. FastAdmin扩展PHPEXCEL,PHP7.3高版本兼容问题

    THINKPHP扩展PHPEXCEL与PHP7.3高版本兼容问题 框架:THINKPHP5,PHPEXCEL版本:1.81 无法导出EXCEL原因为Shared/OLE.php第290行使用conti ...

  7. 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里

    引言    DateTime数据类型是一个复杂的问题,复杂到足以让你在编写[将日期从Web服务器返回到浏览器]简单代码时感到困惑. ASP.NET MVC 5和 Web API 2/ASP.NETCo ...

  8. 简练软考知识点整理-范围确认易混概念

    与确认范围容易混淆的知识点包括,确认范围与核实产品.质量控制.项目收尾,下面进行比较分析. (1)确认范围与核实产品 核实产品是针对产品是否完成,在项目(或阶段)结束时由发起人或客户来验证,强调产品是 ...

  9. 朴素贝叶斯知识点概括

    1. 简述 贝叶斯是典型的生成学习方法 对于给定的训练数据集,首先,基于特征条件独立假设,学习输入/输出的联合概率分布:然后,基于此模型,对于给定的输入x,根据贝叶斯定理求后验概率最大的输出y 术语说 ...

最新文章

  1. 老板说我最近飘了,都敢用 MySQL 实现分布式锁了
  2. Kubernetes安装之证书验证
  3. C#窗体应用设置多窗体和设置启动窗体
  4. easyExcel 读取日期为数字的解决方案
  5. Apache Wicket:记住我的功能
  6. 2018软工实践第六次作业-团队选题报告
  7. 前端学习(2866):vue3数据劫持解析1
  8. 【转】04.Dicom 学习笔记-DICOM C-Move 消息服务
  9. mycat 不得不说的缘分
  10. python phpstudy_python有没有像phpstudy那样的工具
  11. 树梅派输入法黑块问题
  12. python 如何显示时钟_python控制台显示时钟的示例
  13. 【lpxt】笔者支招:九招搞定显示器黑屏
  14. 一代私募传奇落幕:黑石创始人彼得森留下4000亿美元离世
  15. 【Java企业级开发二】jsp简答题汇总
  16. idea中maven找不到本地仓库jar包_有人说 Maven 很简单,我却被 伤害 过
  17. Python 100例
  18. BGP和BGP机房各为什么?优势在哪?
  19. Windows10 启动 Docker Desktop 时报错 Containers feature is disabled
  20. “青软杯”安徽科技学院第六届程序设计大赛_专业组

热门文章

  1. [YTU]_2627 (职工工资统计)
  2. Python跨平台文件夹分割方法os.sep
  3. LeetCode:2. Add Two Numbers
  4. 快速幂(二进制,十进制)
  5. 12.1简介Object类
  6. 河南工程学院计算机科学与技术在哪个校区,河南工学院新生在哪个校区_有几个校区及地址介绍...
  7. dell r220服务器配置oracle linux 阵列卡,如何在Dell服务器PERC5/6阵列卡配置RAID
  8. HZOJ 斐波那契(fibonacci)
  9. 基于JAVA的生产者消费者问题
  10. 一 SpringMVC源码之DispatcherServlet AbstractHanderMapping