gpt4 book ai didi

php - xlsx 中的 getHighestColumn 不起作用

转载 作者:可可西里 更新时间:2023-11-01 13:06:27 26 4
gpt4 key购买 nike

有这段代码,使用PHPExcel

    public function getHighestColumn()
{
return $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
}

public function getHighestRow()
{
return $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
}

我在 .xls 和 .xlsx 中保存了相同的 excel 文件它有 10 列(从 B 到 K)和 10 行

当我使用 getHighestColumn 时,在 .xls 中我得到“K”(正确),但在 .xlsx 中我得到 AMK(所有 excel 工作表的最后一列)关于该行,使用 .xls 我得到 10,但在 .xlsx 中我得到 1024。我很确定,除了表格,工作表的其余部分都是空白的。

为什么我得到不同的结果有什么想法吗?

这是我正在使用的阅读器

public function openReader($filePath)
{
//aca determinamos cual tipo es para saber que reader es
$reader_5 = new PHPExcel_Reader_Excel5();
$reader_07 = new PHPExcel_Reader_Excel2007();

$inputFileType = $this->canRead(new PHPExcel_Reader_Excel5(), $filePath, self::EXCEL5);

if($inputFileType === '')
$inputFileType = $this->canRead(new PHPExcel_Reader_Excel2007(), $filePath, self::EXCEL2007);
else
{
throw new Exception("No se puede procesar el archivo; el formato no es correcto");
}
return PHPExcel_IOFactory::createReader($inputFileType);
}


private function canRead($reader, $path, $readerType)
{
return $reader->canRead($path) ? $readerType: '';
}

public function persist($fileName)
{
$filePath = sfConfig::get('sf_upload_dir').'\\'.$fileName;

$this->objReader = $this->openReader($filePath);
//Set only first Sheet
$this->setOnlyFirstSheet();

$this->createObjPHPExcel($filePath);

echo $this->getHighestColumn();
echo $this->getHighestRow();
}

我已经使用 var_dump 进行了检查,在每种情况下我都使用了正确的阅读器。

PHP 5.3.5、PHPExcel 1.7.8、Symfony 1.4

最佳答案

getHighestColumn()getHighestRow() 计算行和列是否包含任何内容(包括样式信息)而不是简单地包含内容。加载电子表格时也会计算这些值,因此如果您随后向工作表添加新行或新列,则可能不准确。

相反,使用 getHighestDataColumn()getHighestDataRow() 方法返回单元格中实际包含数据值的最高行和列。虽然效率较低,但它们实际上会在调用时计算最高的单元格引用,速度较慢,但​​始终准确

关于php - xlsx 中的 getHighestColumn 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15903471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com