您现在的位置是:首页 > 个人博客个人博客
PHPExcel列名超过26列大于Z时的解决方法
龙沐星2019-11-06【个人博客】12459人已围观
简介相信很多朋友在使用 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++) {}
很赞哦! (12459)
相关文章
文章评论
- 评论已关闭
点击排行
Linux独立主机修改ROOT密码方法
站长推荐
为什么说10月24日是程序员的节日?
猜你喜欢
站点信息
- 建站时间:2015-07-29
- 网站程序:YII 2.0
- 文章统计:24条
- 文章评论:12459条
- 统计数据:百度统计
- 微信公众号:扫描二维码,关注我们

