Formel setzen mit PHPExcel

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formel setzen mit PHPExcel

    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:

    Code:
    =WENN(Datenbasis!B3<0;((Datenbasis!K3-Datenbasis!B3)/ABS(Datenbasis!B3))^(1/9)-1;(Datenbasis!$K$3/Datenbasis!$B$3)^(1/9)-1)
    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:

    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"); 
    Die Befehle/Formeln muss man in engl. eintragen, also wird aus WENN -> IF.

    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
    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:

    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)"); 
    Dadurch erhalte ich die Fehlermeldung

    Code:
    Fatal error: Call to a member function cellExists() on a non-object in ...\PHPExcel\Calculation.php on line 3209
    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

  • #2
    könnte an den Anführungszeichen und dem Dollarzeichen in deiner Formel liegen ("..$"), ersetze diese durch einfache Anführungszeichen ('..$').

    Greez,

    Ron

    Kommentar

    Lädt...
    X