Hallo.
Ich bin mir nicht sicher, ob ich hier richtig bin, denn eigentlich geht es um eine Excel-Formel, die ich mit PHPExcel in eine Excel-Datei speichern möchte.
Da die Formel aber in Excel funktioniert und im PHP-Code nicht, vermute ich, dass die Programmierung falsch ist und mir ein Coder eher helfen kann, als ein Excel-Experte.
Es geht um diese Formel:
Als Excel-Vorlage stelle ich diese Datei zur Verfügung: http://www.mynettld.net/phpexceltest.zip
Der Code zum Speichern dieser Zeile sieht so aus:
Die Befehle/Formeln muss man in engl. eintragen, also wird aus WENN -> IF.
Als Fehler erhalte ich
Die Formel funktioniert in Excel einwandfrei, aber wenn ich sie mit PHPExcel in das Feld J4 speichern will, meckert PHPExcel.
Ich nahm an, dass es an dem zweiten Semikolon liegt und der DANN-Wert nicht als geschlossener Ausdruck erkannt wird. Also habe ich testweise noch ein Klammerpaar um den DANN-Wert gesetzt:
Dadurch erhalte ich die Fehlermeldung
was mich nun völlig irritiert, denn erstens nimmt Excel diese Formel ebenfalls ohne zu zicken und zweitens sollte doch das Setzen von Klammern keinerlei Auswirkungen haben, sofern die Klammern korrekt gesetzt sind.
Gegoogelt habe ich bereits, doch finde ich zu einem undefined variable ';'-Fehler keine hilfreichen Ergebnisse.
Hat zufällig jemand eine Idee?
cya
Ich bin mir nicht sicher, ob ich hier richtig bin, denn eigentlich geht es um eine Excel-Formel, die ich mit PHPExcel in eine Excel-Datei speichern möchte.
Da die Formel aber in Excel funktioniert und im PHP-Code nicht, vermute ich, dass die Programmierung falsch ist und mir ein Coder eher helfen kann, als ein Excel-Experte.
Es geht um diese Formel:
Code:
=WENN(Datenbasis!B3<0;((Datenbasis!K3-Datenbasis!B3)/ABS(Datenbasis!B3))^(1/9)-1;(Datenbasis!$K$3/Datenbasis!$B$3)^(1/9)-1)
Der Code zum Speichern dieser Zeile sieht so aus:
PHP-Code:
// ....
try
{
$inputFileType = PHPExcel_IOFactory::identify("phpexceltest.xls");
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("phpexceltest.xls");
}
catch(Exception $e)
{
$_loadingerror = TRUE;
}
if ($_loadingerror === TRUE)
{
// Fehler beim Laden der Vorlagen-Datei!
die("Fehler!");
}
$objPHPExcel->setActiveSheetIndex("0");
// ....
$excel_zeile = 4;
$objPHPExcel->getActiveSheet()->setCellValue("J" . $excel_zeile, "=IF(Datenbasis!B3<0;((Datenbasis!K3-Datenbasis!B3)/ABS(Datenbasis!B3))^(1/9)-1;(Datenbasis!$" . "K$3/Datenbasis!$" . "B$3)^(1/9)-1)");
// ....
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save("fertig.xls");
Als Fehler erhalte ich
Code:
Fatal error: Uncaught exception 'Exception' with message 'Results!J4 -> undefined variable ';'' in ...\PHPExcel\Cell.php:288 Stack trace: #0 ...\PHPExcel\Writer\Excel5\Worksheet.php(441): PHPExcel_Cell->getCalculatedValue() #1 ...\PHPExcel\Writer\Excel5.php(171): PHPExcel_Writer_Excel5_Worksheet->close() #2 phpexceltest.php(446): PHPExcel_Writer_Excel5->save('Auswertung.xls') #3 {main} thrown in ...\PHPExcel\Cell.php on line 288
Ich nahm an, dass es an dem zweiten Semikolon liegt und der DANN-Wert nicht als geschlossener Ausdruck erkannt wird. Also habe ich testweise noch ein Klammerpaar um den DANN-Wert gesetzt:
PHP-Code:
$objPHPExcel->getActiveSheet()->setCellValue("J" . $excel_zeile, "=IF(Datenbasis!B3<0;(((Datenbasis!K3-Datenbasis!B3)/ABS(Datenbasis!B3))^(1/9)-1);(Datenbasis!$" . "K$3/Datenbasis!$" . "B$3)^(1/9)-1)");
Code:
Fatal error: Call to a member function cellExists() on a non-object in ...\PHPExcel\Calculation.php on line 3209
Gegoogelt habe ich bereits, doch finde ich zu einem undefined variable ';'-Fehler keine hilfreichen Ergebnisse.
Hat zufällig jemand eine Idee?
cya
Kommentar