您现在的位置是:首页 > 个人博客个人博客
PHPExcel列名超过26列大于Z时的解决方法
龙沐星2019-11-06【个人博客】37094人已围观
简介相信很多朋友在使用 PHPExcel 获取列或者在做列判断时,发现如果列字母大于26列时,如:AA,AB......小编也遇到同样的问题,苦思冥想下,终于找到方法
相信很多朋友在使用 PHPExcel 获取列或者在做列判断时,发现如果列字母大于26列时,如:AA,AB......
小编也遇到同样的问题,苦思冥想下,终于找到方法,如下:
1、引入PHPExcel包,获取总行数,获取总列数这些就不说了
2、此处是基于thinkPHP举例的;其他框架等都类似
public function excel() { //导入PHPExcel包 vendor("PHPExcel.PHPExcel"); //指定excel文件路径 $filePath = 'test.xls'; //实例化PHPExcel $PHPExcel = new \PHPExcel(); //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取 $PHPReader = new \PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new \PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo 'no Excel'; return; } } //加载test.xls $PHPExcel = $PHPReader->load($filePath); //获取excel总表数 $sheetCount = $PHPExcel->getSheetCount(); //设置程序执行不超时 set_time_limit(0); //此处默认从第二个工作表开始读取,若要从第一个工作表读取,设置$sheet = 0;注意:$sheet不能等于$sheetCount for ($sheet = 0; $sheet < $sheetCount; $sheet++) { //读取excel文件中的第一个工作表,工作表排序从0开始 $currentSheet = $PHPExcel->getSheet($sheet); //取得最大的列号 $allColumn = $currentSheet->getHighestColumn(); //取得一共有多少行 $allRow = $currentSheet->getHighestRow(); //从第一行开始输出,如果excel表中第一行为列名,则$currentRow初始值设置为2 for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) { //循环行 //从第A列开始输出 for ($currentColumn = 'A'; $currentColumn != 'DQ'; $currentColumn++) { //循环列 //ord()将字符转为十进制数 $letterToNum = \PHPExcel_Cell::columnIndexFromString($currentColumn); //调用columnIndexFromString()内置方法;把列号转化成数字,A列转化为1,B转化为2 //获取每一个对应单元格的内容 $val[] = $currentSheet->getCellByColumnAndRow($letterToNum - 1, $currentRow)->getValue(); } //此处的$val数组里为第一行的所有数据;编写自己的逻辑方法来处理数据 } } //做输出返回逻辑 }
注:每句小编都有写好注释;值得提醒的是:
PHPExcel里有内置方法:
将列的数字序号转成字母使用,代码: \PHPExcel_Cell::stringFromColumnIndex(数字); // 从0开始
将列的字母转成数字序号使用,代码: \PHPExcel_Cell::columnIndexFromString(字母);
PHPExcel_Cell 前都必须加反斜线 \
另外:在循环列时;判断列时
如果列小于26列时,可以用:
for ($currentColumn = 'A'; $currentColumn <= 'Z'; $currentColumn++) {}
如果列大于26列时,会出现两个或以上的字母,上面这种方法就判断不到了,可以改用如下方法:
for ($currentColumn = 'A'; $currentColumn != 'DQ'; $currentColumn++) {}
很赞哦! (37094)
相关文章
文章评论
- 评论已关闭
点击排行
站长推荐
猜你喜欢
站点信息
- 建站时间:2015-07-29
- 网站程序:YII 2.0
- 文章统计:24条
- 文章评论:37094条
- 统计数据:百度统计
- 微信公众号:扫描二维码,关注我们