2010-10-29 4 views
1

ОК Я динамически генерирую координаты ячейки, но я получаю эту ошибку, почему?Недопустимая координата ячейки phpExcel

Ошибка:

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!'); 
+0

Проверьте код, где брошено исключение. Вероятно, это поможет понять, что происходит ... – ircmaxell

+0

если я жестко кодирую значение, оно отлично работает, $ objPHPExcel-> getActiveSheet() -> SetCellValue ('A1', 'Hello'); –

+0

Затем попробуйте 'var_dump()' переменную '$ cell'. Изменения состоят в том, что он настроен на нечто иное, чем то, что вы думаете (или нуждаетесь) в том, чтобы это было ... – ircmaxell

ответ

1

Передача значения столбца/строки неправильно.

Должно быть:

$cell = $column_value.$row_number; 
+0

doh !! Легко ошибиться –

Смежные вопросы