【问题标题】:PHPExcel How to get only 1 cell value?PHPExcel如何只获得1个单元格值?
【发布时间】:2014-03-21 18:22:05
【问题描述】:

我认为getCell($X, $y)getCellValue($X, $y) 可供人们轻松选择某个值。这很有用,例如在更大的流程之前交叉检查数据。

如何从单元格 C3 中获取特定值。

我不想对一组值进行排序。

【问题讨论】:

  • 这样的方法是可用的,并且在整个文档和示例中被广泛使用

标签: php phpexcel


【解决方案1】:

开发者文档第 4.5.2 节

按坐标检索单元格

要检索单元格的值,应首先使用 getCell 方法从工作表中检索单元格。可以使用以下代码行再次读取单元格的值:

$objPHPExcel->getActiveSheet()->getCell('B8')->getValue();

开发者文档第 4.5.4 节

按列和行检索单元格

要检索单元格的值,应首先使用 getCellByColumnAndRow 方法从工作表中检索单元格。可以使用以下代码行再次读取单元格的值:

// Get cell B8
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getValue();

如果您需要计算单元格的值,请使用以下代码。这将在 4.4.35 中进一步解释

// Get cell B8
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getCalculatedValue();

【讨论】:

  • 我在想getValue() 方法返回了一个数据数组...所以我想使用getFormattedValue() 方法,因为它只返回我想要的。我将再次测试并选择一个答案,改进我的答案或确定我是否需要更好地陈述我的问题。顺便说一句,感谢您提供格式正确的答案。
【解决方案2】:

到目前为止最简单的 - 它使用普通的 Excel 坐标:

// Assuming $sheet is a PHPExcel_Worksheet

$value = $sheet->getCell( 'A1' )->getValue();

如果您愿意,可以在函数中将坐标分开:

function getCell( PHPExcel_Worksheet $sheet, /* string */ $x = 'A', /* int */ $y = 1 ) {

    return $sheet->getCell( $x . $y );

}

// eg:
getCell( $sheet, 'B', 2 )->getValue();

【讨论】:

    【解决方案3】:

    这是一个基于来源的答案,请随时改进或评论。

    function toNumber($dest)
    {
        if ($dest)
            return ord(strtolower($dest)) - 96;
        else
            return 0;
    }
    
    function myFunction($s,$x,$y){
     $x = toNumber($x);
     return $s->getCellByColumnAndRow($x, $y)->getFormattedValue();
    }
    
    
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
    $objPHPExcel->setActiveSheetIndex(0);
    $sheetData = $objPHPExcel->getActiveSheet();
    
    
    $cellData = myFunction($sheetData,'B','2');
    var_dump($cellData);
    

    这不适用于字母 Z,可以改进,但可以满足我的需要。

    【讨论】:

    • 如果您使用 PHPExcel 自己的内置 PHPExcel_Cell::columnIndexFromString() 方法而不是您自己的 toNumber() 方法,它可以适用于整个 MS Excel 列范围(不仅仅是 A-Z)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多