phpexcel 导入报错Invalid cell coordinate

报错这个原因是因为,在读取单元格时A-Z 的单元格没问题,再继续读取单元从AA开始,依次往后,例如下图

我使用的是 PhpOffice\PhpSpreadsheet 这个版本的phpexcel

下面是我的解决方案,一般导入的excel模板都是固定的,我把单元格读取列直接写到数组,循环读取

$pos = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X',
        'Y','Z','AA','AB','AC','AD','AE','AF'];

 

以下是我的导入代码

/**
 * 读取excel
 * @param $file_name 服务器文件路径
 * @param $index 读取excel第几个sheet 默认第一个
 * @param $read_row   从excel 的几行还是读取数据 我的默认是从第三行开始读取
 * @param $col_num   读取到excel的第几列
 * @param int $index
 * @return array
 */
function import_xls($filename,$index = 0, $read_row = 3, $col_num = 0)
{
    $ext = pathinfo($filename,  PATHINFO_EXTENSION );
    $ext = strtolower($ext);
    $ext = ucfirst($ext);
    if (!in_array($ext,['Xls', 'Xlsx'])) {
        throw new \think\Exception('只允许上传excel文件');
    }
    $objReader = IOFactory::createReader($ext);
    $objPHPExcel = $objReader->load($filename);  //$filename可以是上传的表格,或者是指定的表格
    $sheet = $objPHPExcel->getSheet($index);   //excel中的第一张sheet

    //获取总行数
    $row_num = $sheet->getHighestRow();
    //获取总列数
    $col_num = $col_num ? $col_num : $sheet->getHighestColumn();
    $title = [];
    $content = [];
    $pos = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X',
        'Y','Z','AA','AB','AC','AD','AE','AF'];
    for ($row = $read_row; $row <= $row_num; $row++) {
        $row_cell = [];
        foreach($pos as $v){
            //$cell = $sheet->getCell($v . $row)->getValue();
            $cell = $sheet->getCell($v . $row)->getFormattedValue();
            array_push($row_cell, $cell);
        }
        array_push($content, $row_cell);
    }
    return ['content' => $content];
}

 phpexcel 获取格式化后的数据

  $row['date'] = $worksheet->getCell("G{$rowIndex}")->getFormattedValue(); // 获得日期的格式化数值

 phpexcel 获取公式计算后的数据
$row['quantity'] = $worksheet->getCell("F{$rowIndex}")->getCalculatedValue(); // 获得公式计算值

 
 

 

 

 

 

 

 

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐