PHPExcel setCellValueByColumnAndRow не записывает данные в электронную таблицу

я вывожу данные из базы данных mysql в книгу Excel, используя PHPExcel. Моя рабочая тетрадь состоит из 3 листов, и большинство из них работает нормально. У меня проблемы с последним разделом вывода на третий лист. То, что я пытаюсь сделать, это вывести таблицу с заголовками строк и столбцов, значения которых взяты из таблицы mysql, а затем комбинацию цифр на строку / столбец, также взятую из таблицы mysql на основе заголовка строки / столбца , Заголовки строк и столбцов записываются в файл в том виде, в котором они должны быть, а данные внутренней таблицы - нет. Когда я отображаю вывод на экран, все данные появляются, и итерации строк / столбцов увеличиваются так, как они должны, просто кажется, что setCellValueByColumnAndRow не устанавливает значения на рабочем листе. Раздел кода, с которым у меня возникли проблемы, приведен ниже. Кто-нибудь может увидеть, где проблема в моем коде?

$objPHPExcel->setActiveSheetIndex(2);

while($srow = mysql_fetch_assoc($query_company))
{
$newarray[] = $srow['entity'];
}
$row4 = 2;
$col4 = 1;
while($trow = mysql_fetch_row($query_ctry))
{
$country = $trow[0];

while($comp = each($newarray))
{
$company = $comp[1];
$total = mysql_query("SELECT noparts FROM totalslist WHERE country = '$country' AND entity = '$company'") or die (mysql_error());
if ($numrows = mysql_num_rows($total) == 0)
{
$totalres = 0;
}
else
{
$result3 = mysql_fetch_row($total);
$totalres = $result3[0];
}

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col4, $row4, $totalres); 
$col4++;

}
reset($newarray);
$row4++;
$col4 = 1;
}
 SomeKittens13 июл. 2012 г., 22:58
Если вы нашли решение, смело отвечайте на свой вопрос и помогите кому-нибудь еще с той же проблемой.

Ответы на вопрос(1)

Решение Вопроса

**Решение! На самом деле я решил эту проблему, слегка изменив код. а затем добавлял значения внутренней таблицы. Я изменил его так, что добавил заголовки и данные по мере увеличения по строкам и столбцам, как показано в коде ниже. Может помочь кому-то еще.

$objPHPExcel->createSheet(2);
$objPHPExcel->setActiveSheetIndex(2);
$objPHPExcel->getActiveSheet()->setTitle('PivotTable');
$query_ctry = mysql_query("SELECT DISTINCT country FROM totalslist ORDER BY country");
$numctry = mysql_num_rows($query_ctry);
$query_company = mysql_query("SELECT DISTINCT entity FROM totalslist ORDER BY entity");
$numcomp = mysql_num_rows($query_company);

while($srow = mysql_fetch_assoc($query_company))
{
    $newarray[] = $srow['entity'];
}
$row3 = 2;
$col3 = 1;
while($trow = mysql_fetch_row($query_ctry))
{
    $country = $trow[0];

    while($comp = each($newarray))
    {
        $company = $comp[1];
        $total = mysql_query("SELECT noparts FROM totalslist WHERE country = '$country' AND entity = '$company'");
    if ($numrows = mysql_num_rows($total) == 0)
    {
        $totalres = 0;
    }
    else
    {
        $result3 = mysql_fetch_row($total);
        $totalres = $result3[0];
    }
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row3, $country);
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col3, 1, $company);
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col3, $row3, $totalres); 
    $col3++;

    }
        reset($newarray);
        $row3++;
        $col3 = 1;
}
        // Save Excel file
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output');
        exit();

Ваш ответ на вопрос