Matthias Bode: Spreadsheet_Excel fehler in Formel

Hallo zusammen,
ich arbeite mit Spreadsheet_Excel um eine Exceldatei zu erzeugen.
Klappt alles ganz gut, nur an einem punkt hakts.

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();
$workbook->send('Test.xls');
$worksheet =& $workbook->addWorksheet('Rechnung');

$worksheet->write(0, 0, "1");
$worksheet->write(1, 0, "1");
$worksheet->write(2, 0, "1");
$worksheet->write(0, 1, "4");
$worksheet->write(1, 1, "1");
$worksheet->write(2, 1, "9");

$worksheet->writeFormula(3, 1, "=SUMIF(A1:A3,1,B1:B3)");
$workbook->close();

?>

Bei $worksheet->writeFormula(3, 1, "='SUMIF'(A1:A3,1,B1:B3)");
schreibt er zwar die Formel in die Zelle, nur kommt, wenn man die Datei öffnet der Fehler #Wert!.

Klickt man allerdings einmal in die Bearbeitungsleiste und drückt Enter, stimmt auf einmal alles.

Wie kann das denn bitte sein?
Vielen Dank im Voraus für eure Hilfe

Matthias

  1. Bei $worksheet->writeFormula(3, 1, "='SUMIF'(A1:A3,1,B1:B3)");

    Sollte natürlich
    $worksheet->writeFormula(3, 1, "=SUMIF(A1:A3,1,B1:B3)");
    heien, keine Ahnung wie da hingekommen sind.

  2. Eventuell gibt es im Excel-Modul einen Schalter "sheet vor Anzeigen berechnen j/n"?

    1. Eventuell gibt es im Excel-Modul einen Schalter "sheet vor Anzeigen berechnen j/n"?

      also ich finde keinenm url hab ich aber mal mit angegeben.
      alle anderen formeln werden auch sofort berechnet nur summewenn/sumif nicht.

      hmm
      matthias

      1. alle anderen formeln werden auch sofort berechnet nur summewenn/sumif nicht.

        "Er" frisst auch Formeln mit Bereichsangaben? Worin unterscheidet sich diese Formel von anderen, akzeptierten Formeln?

        1. alle anderen formeln werden auch sofort berechnet nur summewenn/sumif nicht.

          "Er" frisst auch Formeln mit Bereichsangaben? Worin unterscheidet sich diese Formel von anderen, akzeptierten Formeln?

          Ja das frist "er" =SUM(A1:A3) geht z.B. tadellos.
          Ich glaube, es liegt in der Interpreation der formeln.
          kann das sein dass er vielleicht bei SUMIF erst denkt SUM aha und dan IF  anstatt beides zusammenzufassen, dann das doch irgendwie realisiert oder so??? ka

          gibts ne möglichkeit das ganze zu umgehen mit einer anderen Funktion?

          1. gibts ne möglichkeit das ganze zu umgehen mit einer anderen Funktion?

            Guter Ansatz. Wenn der mudguard Tipp nicht hilft, solltest Du genau das probieren. Du kannst vermutlich Bereiche anders beschreiben und zwar durch Nennung der einzelnen Zellen. Eventuell kannst Du auch ein Makro entwickeln, dass bestimmte Aufgaben erst nach Laden des sheets ausführt.

            Implementierungsfehler bei Perl- und PHP-Modulen sind übrigens nichts ungewöhnliches, ich selbst habe mir an einigen XML-Modulen unter Perl bereits den einen oder anderen ahn ausgebissen.

            Ist halt GPL.   ;)

            1. Ist halt GPL.   ;)

              War GPL, meine ich natürlich.   ;)

  3. Hi,

    $worksheet->writeFormula(3, 1, "=SUMIF(A1:A3,1,B1:B3)");

    IIRC will Excel ; als Trenner zwischen den Argumenten einer Funktion, nicht ,

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. IIRC will Excel ; als Trenner zwischen den Argumenten einer Funktion, nicht ,

      Hallo hallo,
      nee das mit dem , stimmt schon, denn laut doku zur klasse

      Formulas must start with an equal sign ('=').

      Arguments given to an Excel function should be separated by comas (','), not by semicolons (';').

      aber ich werd mal gucken wie ich drum rum komme

      erst einmal vielen dank
      matthias