Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHPExcel所遇到问题的知识点总结

PHPExcel所遇到问题的知识点总结

作者头像
joshua317
发布于 2018-04-16 05:07:13
发布于 2018-04-16 05:07:13
90400
代码可运行
举报
文章被收录于专栏:技术博文技术博文
运行总次数:0
代码可运行

工作中进行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()));

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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()));

*******************/
?>
  
 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
phpexcel导入并且有错时标记出文件错位位置
Text-to-speech function is limited to 200 characters
botkenni
2019/09/02
1.1K0
PHPExcel 表格导入数据代码解析(二)
前面大概讲了phpexcel用表格导入数据到数据库中的教程,今天会详细剖析函数代码,话不多说,先上代码: public function upload() { ini_set('memory_limit','1024M'); //设定一个脚本所能够申请到的最大内存字节数,这有利于写的不好的脚本消耗服务器上的可用内存 if (!empty($_FILES)) { $config = array( 'exts' => array('xls
benny
2018/03/06
1.7K0
PHPExcel 表格导入数据代码解析(二)
PHP利用phpexcel导入Excel表到Mysql数据库
最近在搞PHP项目,后台很多课题信息需要导入数据库,考虑过一条条导入,但是这样太费时费力。 所以找了下phpexcel的资料,打算利用这个工具把excel表导入数据库,但是发现很多教程都太久远,拿来
刺_猬
2018/06/21
17K1
使用phpexcel操作excel
使用这个组件最让我郁闷的是,它对sheet的名称为中文的不进行处理,暂时还没仔细去查原因。
meteoric
2018/11/15
2.7K2
TP5的ecxel导入数据
本文最后更新于2021年09月06日,已超过279天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
田小檬
2022/08/30
4930
PHPExcel对于Excel中日期和时间类型的处理
PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论。PHPExcel最新的版本是2014年3月2日发布的1.8.0版本,后来项目迁移到了GitHub,后续的版本已经更名为PHPSpreadSheet。
大江小浪
2018/07/24
3.5K0
PHPExcel对于Excel中日期和时间类型的处理
php 使用PHPEXcel导出表数据
PHPEXCEL&nbsp;~&nbsp;13KB&nbsp;&nbsp;&nbsp;&nbsp;下载(28)
用户7999227
2021/09/22
3.7K0
PHP 操作PHPExcel(设置字体、设置边框、合并单元格、设置、设置背景色、以及单元格内换行、单元格不以科学记数法显示等)
结合数据库查询写一个简单的小例子:场景有这样一个订单表如图,我们把1-20号订单,21-40号订单,41-60号订单分开放在不同的sheet里面。
友儿
2022/09/11
5.4K0
PHPExcel_把Excel数据导入数据库PHP
1、PHP版本5.3以上 2、官网下载稳定版本的PHPExcel 官网地址:http://phpexcel.codeplex.com/ 以下均以PHPExcel_1.8.0 稳定版为学习版本
全栈程序员站长
2022/11/17
7.9K1
PHPExcel_把Excel数据导入数据库PHP
TP5.0 excel 导入导出
引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo
全栈程序员站长
2022/07/07
5420
PHP读取Excel文件内容
项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel。
大江小浪
2018/07/24
6K0
php导出excel表格_phpspreadsheet导出
单个sheet页Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。Excel2003的最大列数是256列,2007以上版本是16384列。
全栈程序员站长
2022/09/30
25.1K1
php导出excel表格_phpspreadsheet导出
PHP与EXCEL PHPExcel
PHPExcel 它是用来操作Office Excel 文档PHP图书馆,它是基于微软的OpenXML标准PHP语言。能够使用它来读、写不同格电子表的类型格,例如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
全栈程序员站长
2022/07/06
1.6K0
phpoffice/phpexcel 导出Excel表格数据
1. 下载扩展包 composer require phpoffice/phpexcel 2. 导出数据封装 在TP中使用时可以将以下类文件放入 extend 目录 <?php /** * 导出数据
很酷的站长
2023/01/16
2.2K0
phpExcel导出文件时内存溢出的问题
在使用PHPExcel导出文件时,经常会因为文件过大导致PHP内存溢出报错,为了解决这个问题,可以使用PHPExcel提供的参数进行优化。这里说的Excel文件过大并不一定是文件大小,更关键的在于文件内存放的数据和格式,如果数据很多,格式又比较丰富,那很容易会将PHP的内存耗尽。
大江小浪
2018/07/24
2.7K0
如何将excel表格导入mysql数据库_MySQL数据库
打开企业管理器开要导入数数据库,在表上按右键,所务–>导入数据,弹出DTS导入/导出向导,按 下一步 , 2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 , 3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 , 4、选择 用一条查询指定要传输的数据,按 下一步 , 5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 , 6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语
全栈程序员站长
2022/11/08
58.5K0
thinkphp5中使用PHPExcel(转载)
你会发现项目的目录中在vendor的目录下多了一个文件夹(phpexcel),这个文件夹中的东西就是要使用的php中的Excel表格操作
lin_zone
2018/08/15
8210
国产化替代方案_excel表格为什么替换不了
PHPExcel上一版本1.8.1于2015年发布。该项目已不再维护,可以使用,但是不建议再使用。所有用户都应该迁移到其直接后继者PhpSpreadsheet或其他替代方案。PhpSpreadsheet打破了兼容性,大大提高了代码库质量(命名空间,PSR合规性,最新PHP语言功能的使用等)。
全栈程序员站长
2022/11/04
1.9K0
国产化替代方案_excel表格为什么替换不了
PHPExcel随笔
一、设置PHPExcel单元格文本格式 1.在设置值的时候显示的指定数据类型 $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setTitle('Simple'); $objPHPExcel->getActiveSheet()->setCellValueExplicit('D1',123456789033,PHPExcel_Cell_DataType::
用户4973967
2019/12/16
1.3K0
相关推荐
phpexcel导入并且有错时标记出文件错位位置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验