Почему столбец переменной в этом случае равен 3? - PullRequest
1 голос
/ 27 января 2012

речь идет о проблеме цикла

for ($row = 1; $row <= $highestRow; $row++) {
    echo "<tr>";
    for ($column = 0; $column < $highestColumn; $column++) {
        $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
        echo "<td>";
        //echo $val;
        echo $row,$column;
        echo "</td>";
  }
  echo "</tr>";
}

максимальная строка и максимальный столбец равны 4, в этом случае ВЫХОД:

test.xlsx

Import from spreadsheet files

Unname coloum 0  Unname coloum 1  Unname coloum 2  Unname coloum 3  
    13                   13               13                13
    23                   23               23                23
    33                   33               33                33
    43                   43               43                43

значение столбца равно 3 и никогдаизменить (должно быть по крайней мере 0?), я не инициализировал его раньше, это странно

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="../plugin/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../plugin/easyui/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../style/form1.css" />
    <script type="text/javascript" src="../plugin/easyui/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="../plugin/easyui/jquery.easyui.min.js"></script>
    </script>
</head>
<body>


<?
session_start();

$file=$_POST['excel'];

include '../plugin/excel/Classes/PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$PHPExcel = $reader->load($file);
$sheet = $PHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn());
?>
<div id="stylized" class="view">
<h1><?echo $file;?></h1> 
<p>Import from spreadsheet files</p>
<table id="tt" class="easyui-datagrid" style="width:auto;height:auto;" >
<thead>
<tr>
<?
for ($head = 0; $head < $highestColumn; $head++){
echo "<th field='col' $head> Unname coloum $head </th>";
}
?></tr>
</thead>
<tbody>

<?

for ($row = 1; $row <= $highestRow; $row++) {
    echo "<tr>";
    for ($column = 0; $column < $highestColumn; $column++) {
    $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
    echo "<td>";
    //echo $val;
    echo "$row,$column";
    echo "</td>";
  }
  echo "</tr>";
}


?>
</tbody>
</table>
<div class="spacer"></div>
</div>
</body>
</html>

спасибо

1 Ответ

0 голосов
/ 28 января 2012

Слишком большой для комментария:

Попробуйте изменить

$highestRow = $sheet->getHighestRow(); 
$highestColumn = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); 

на

$highestRow = $sheet->getHighestRow(); 
$highestColumn = $sheet->getHighestColumn(); 
$highestColumn++;

и

for ($head = 0; $head < $highestColumn; $head++){  
    echo "<th field='col' $head> Unname coloum $head </th>";  
}

на

for ($head = 'A'; $head !== $highestColumn; $head++){  
    echo "<th field='col' $head> Unname coloum $head </th>";  
}

и

for ($column = 0; $column < $highestColumn; $column++) {        
    $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();        
    echo "<td>";        
    //echo $val;        
    echo "$row,$column";        
    echo "</td>";        
} 

до

for ($column = 'A'; $column !== $highestColumn; $column++) {     
    // $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();     
    echo "<td>";     
    //echo $val;     
    echo $row , $column;     
    echo "</td>";     
}  

Обратите внимание, что я закомментировал вызов getCell на данный момент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...