【问题标题】:Invalid cell coordinate phpExcel无效的单元格坐标phpExcel
【发布时间】:2010-10-29 17:57:55
【问题描述】:

好的,我正在动态生成单元格坐标,但出现此错误,为什么?

错误:

Exception: Invalid cell coordinate. in /var/www/test/excel/pe/Classes/PHPExcel/Cell.php on line 490

Call Stack:
    0.0003      81132   1. {main}() /var/www/test/excel/createExcelReport.php:0
    0.0225    2691000   2. PHPExcel_Worksheet->setCellValue() /var/www/test/excel/createExcelReport.php:92
    0.0225    2691316   3. PHPExcel_Worksheet->getCell() /var/www/test/excel/pe/Classes/PHPExcel/Worksheet.php:841
    0.0597    8336788   4. PHPExcel_Cell::coordinateFromString() /var/www/test/excel/pe/Classes/PHPExcel/Worksheet.php:940

代码如下:

// Add some data
echo date('H:i:s') . " Add some data<br />\n";
$objPHPExcel->setActiveSheetIndex(0);

// *********************** TEST ************************************ //

// Set the defaults
$limit_col      = 6;
$limit_row      = 10;
$current_col    = 'A';
$current_row    = 1;

// Create the row and column arrays starting at index 1
$row_arr    = array(1 => $current_row);
$column_arr = array(1 => $current_col);

// Build the column array
while(count($column_arr) < $limit_col) {
    $column_arr[] = ++$current_col;
}

// Build the row array
while(count($row_arr) < $limit_row) {
    $row_arr[] = ++$current_row;
}

//echo "Row<pre>".print_r($row_arr, true)."</pre><br />";
//echo "Column<pre>".print_r($column_arr, true)."</pre><br />";

foreach($row_arr as $row_number) {
    $excel_matrix[$row_number] = $column_arr;
}

foreach($excel_matrix as $row_number => $column_position) {
    foreach($column_position as $column_key => $column_value) {
        $cell = (string)$row_number.''.$column_value;
        echo "Cell: ".$cell."<br />\n";
        $objPHPExcel->getActiveSheet()->SetCellValue($cell, 'Hello'); 
    }
}

// *********************** TEST ************************************ //


//$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
//$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
//$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
//$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');

【问题讨论】:

  • 检查抛出异常的代码。它可能会提供对正在发生的事情的洞察......
  • 如果我硬编码它工作正常的值,$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
  • 然后尝试var_dump() $cell 变量。变化在于它被设置为不同于您认为(或需要)的东西......
  • 谢谢,在查看了我传递的内容后,我交换了 Column 和 Row 值,啊!!!

标签: php phpexcel dynamic-data


【解决方案1】:

传递列/行值错误。

应该是:

$cell = $column_value.$row_number;

【讨论】:

  • 哇!!这是一个容易犯的错误
猜你喜欢
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多