PHPExcel所遇到问题的知识点总结
工作中进行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所遇到问题的知识点总结相关推荐
- php循环读取excel每个单元格,php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)...
error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); include_once('Classes/PHPExcel/I ...
- php excel导出sheet表,phpexcel来做表格导出(多个工作sheet)
1.先得去下载phpexcel文档,加压下来 /** * 简单实用Execl */ set_include_path('.'.get_include_path().PATH_SEPARATOR.dir ...
- 解释型语言与编译型的必须知识点
解释型语言与编译型的必须知识点 概念: 计算机不能理解直接理解高级语言,只能理解机器语言,所以必须把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种: 编译 解释 两种翻译 ...
- YOLOV4知识点分析(二)
YOLOV4知识点分析(二) 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org/ab ...
- YOLOV4知识点分析(一)
YOLOV4知识点分析(一) 简 介 yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection arxiv:https://arx ...
- FastAdmin扩展PHPEXCEL,PHP7.3高版本兼容问题
THINKPHP扩展PHPEXCEL与PHP7.3高版本兼容问题 框架:THINKPHP5,PHPEXCEL版本:1.81 无法导出EXCEL原因为Shared/OLE.php第290行使用conti ...
- 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里
引言 DateTime数据类型是一个复杂的问题,复杂到足以让你在编写[将日期从Web服务器返回到浏览器]简单代码时感到困惑. ASP.NET MVC 5和 Web API 2/ASP.NETCo ...
- 简练软考知识点整理-范围确认易混概念
与确认范围容易混淆的知识点包括,确认范围与核实产品.质量控制.项目收尾,下面进行比较分析. (1)确认范围与核实产品 核实产品是针对产品是否完成,在项目(或阶段)结束时由发起人或客户来验证,强调产品是 ...
- 朴素贝叶斯知识点概括
1. 简述 贝叶斯是典型的生成学习方法 对于给定的训练数据集,首先,基于特征条件独立假设,学习输入/输出的联合概率分布:然后,基于此模型,对于给定的输入x,根据贝叶斯定理求后验概率最大的输出y 术语说 ...
最新文章
- 老板说我最近飘了,都敢用 MySQL 实现分布式锁了
- Kubernetes安装之证书验证
- C#窗体应用设置多窗体和设置启动窗体
- easyExcel 读取日期为数字的解决方案
- Apache Wicket:记住我的功能
- 2018软工实践第六次作业-团队选题报告
- 前端学习(2866):vue3数据劫持解析1
- 【转】04.Dicom 学习笔记-DICOM C-Move 消息服务
- mycat 不得不说的缘分
- python phpstudy_python有没有像phpstudy那样的工具
- 树梅派输入法黑块问题
- python 如何显示时钟_python控制台显示时钟的示例
- 【lpxt】笔者支招:九招搞定显示器黑屏
- 一代私募传奇落幕:黑石创始人彼得森留下4000亿美元离世
- 【Java企业级开发二】jsp简答题汇总
- idea中maven找不到本地仓库jar包_有人说 Maven 很简单,我却被 伤害 过
- Python 100例
- BGP和BGP机房各为什么?优势在哪?
- Windows10 启动 Docker Desktop 时报错 Containers feature is disabled
- “青软杯”安徽科技学院第六届程序设计大赛_专业组
热门文章
- [YTU]_2627 (职工工资统计)
- Python跨平台文件夹分割方法os.sep
- LeetCode:2. Add Two Numbers
- 快速幂(二进制,十进制)
- 12.1简介Object类
- 河南工程学院计算机科学与技术在哪个校区,河南工学院新生在哪个校区_有几个校区及地址介绍...
- dell r220服务器配置oracle linux 阵列卡,如何在Dell服务器PERC5/6阵列卡配置RAID
- HZOJ 斐波那契(fibonacci)
- 基于JAVA的生产者消费者问题
- 一 SpringMVC源码之DispatcherServlet AbstractHanderMapping