当前位置: 首页 > news >正文

学习整理在php中使用PHPExcel读取excel表列数大于Z时读取不到的解决方案

php读取excel列数大于Z时读取不到

    • 背景
    • 解决方案
    • 关键代码

背景

表格数据超过26列, 也就是在Z列之前没有AA列及以后的情况, 测试一直都没有问题,超过,就会获取不到数据了

解决方案

private function getExcelData(){//获取excel文件$file = $_FILES['poily']['tmp_name'];//实例化excel处理类$PHPReader = new \PHPExcel_Reader_Excel2007();if (!$PHPReader->canRead($file)) {$PHPReader = new \PHPExcel_Reader_Excel5();if (!$PHPReader->canRead($file)) {return false;}}$PHPExcel = $PHPReader->load($file);$currentSheet = $PHPExcel->getSheet(0);//读取第一个工作表$allRow = $currentSheet->getHighestRow();//取得一共有多少行//这两段很重要$allColumn = $currentSheet->getHighestColumn();//取得最大的列号$allColumn = \PHPExcel_Cell::columnIndexFromString($allColumn);//将列数转换为数字 列数大于Z的必须转  A->1  AA->27$arr = [];//从第一行开始读 第一行为标题for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {//从第A列开始输出for ($currentColumn = 0; $currentColumn < $allColumn; $currentColumn++) {//plan 1//$strColumn  = \PHPExcel_Cell::stringFromColumnIndex($currentColumn);//将数字转换为字母  0->A  26->AA//$val = $currentSheet->getCell($strColumn.$currentRow)->getValue();//plan 2$val = $currentSheet->getCellByColumnAndRow($currentColumn, $currentRow)->getValue();//如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出 $arr[$currentRow][]=  iconv('utf-8','gb2312', $val)."\t";//将每列内容读取到数组中$arr[$currentRow][] = trim($val);}}//删除全部为空的行foreach ($arr as $key => $vals) {$tmp = '';foreach ($vals as $v) {$tmp .= $v;}if (!$tmp) unset($arr[$key]);}return $arr;}

关键代码

PHPExcel_Cell::columnIndexFromString($allColumn)  //将列数转换为数字 列数大于Z的必须转  A->1  AA->27
http://www.lryc.cn/news/390732.html

相关文章:

  • python sklearn机械学习-数据预处理
  • 搜索引擎常用语法
  • 华为智能驾驶方案剖析
  • DDR3(一)
  • Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章
  • Kafka入门到精通(三)-Kafka
  • 高校教师教学质量评估系统-计算机毕业设计源码03344
  • 币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出
  • 【FFmpeg】avio_open2函数
  • 技术成神之路:设计模式(二)建造者模式
  • 基于Springboot+Vue+mysql仓库管理系统仓库进销存管理系统
  • 爬虫scrapy库精简使用大全
  • Qt - 如何在新线程 (QThread)中使用一个进程 (QProcess)?
  • Qt绘制多线段
  • 去中心化革命:探索区块链技术的前沿
  • 2024年湖南省各市科小申报时间(科技型中小企业申报流程、条件、好处)新政
  • 【JD-GUI】MacOS 中使用Java反编译工具JD-GUI
  • C++:求梯形面积
  • 学会python——在excel中写入数据(python实例十三)
  • Stable Diffusion【基础篇】:降噪强度(denoising strength)
  • 【Python】语法入门
  • 匠心独运:红酒与手工艺的很好结合
  • 第20章 Mac+VSCode配置C++环境
  • FactoryBean 原理简介
  • Redis中hash类型的操作命令(命令的语法、返回值、时间复杂度、注意事项、操作演示)
  • UE5基本操作(二)
  • React Navigation 和 Expo Router
  • 如何使用python网络爬虫批量获取公共资源数据教程?
  • 常见位运算总结
  • 自动化任务工具 -- zTasker v1.94 绿色版