COM php

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • COM php

    Hallo,

    ich habe einen Skript geschrieben, der Excel-sheet generieren kann.
    Dabei habe ich COM Schnittstelle benutzt. Alles funktioniert wunderbar.
    Jetzt möchte ich auch ein Link erzeugen. In Excel sieht es ungefähr so aus: =HYPERLINK("Pfad";"Name"). Ich habe leider keine Ahnung wie ich es umsetzen soll.

    Hier ist ein kurzes Beispiel mit COM:

    PHP Code:

    $filename 
    "C:\\FRB502.xls";

    $sheet1 "ValidationStatus";

    $excel_app = new COM ("Excel.application") or die ("Did not connect");
    $excel_app->Visible 1;

    try
    {
        
    $Workbook $excel_app->Workbooks->Open("$filename") or    die("Did not open $filename $Workbook");
    }
    catch (
    Exception $e)
    {
        
    //die("Exception caught : " . $e->getMessage());
    }

    try
    {
        
    $Worksheet $Workbook->Worksheets($sheet1);
    }
    catch (
    Exception $e)
    {
        die(
    "This is not an Excel file!!! ");
    }

    $excel_cell $Worksheet->Range("C4");
    $excel_cell->activate;
    $excel_result $excel_cell->value "probe";

    #To close all instances of excel:
    $Workbook->Close;
    unset(
    $Worksheet);
    unset(
    $Workbook);
    $excel_app->Workbooks->Close();
    $excel_app->Quit();
    unset(
    $excel_app); 

    Weist vielleicht jemand wie es gehen könnte??
    Last edited by jackfh; 04-09-2006, 09:40.

  • #2
    Link = zum runterladen?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Comment


    • #3
      Im Excelsheet soll eine Spalte erzeugt werden, wo sich Verweisse auf verschiedenen Dokumente befinden.

      Comment


      • #4
        würde nach ner doku zu deiner klasse, die du da verwendest, suchen!

        Comment


        • #5
          Hier gibts ein Beispiel in VBA. Muß man jetzt halt noch in PHP-Notation umbiegen...

          EDIT: Und hier gibts noch tonnenweise mehr. Hmm, seeehr interessant!

          Comment


          • #6
            Also ich hab vor Jaaahren mal einiges mit Office und PHP gemacht.
            Es ist oft viel einfacher (vor allem wenns um feinheiten geht) die Rohdaten reinzuschreiben und dann ein makro aufzurufen welches das feintuning macht.
            Also z.B. in eine Spalte das Linkziehl schreiben und in eine andere den Linktext. Aus beidem einen kompletten Link zu machen sollte nicht schwer sein. Einfach mal mit der Aufnahmefunktion rumspielen.

            Das Makro lässt du dann einfach über deine Spalte(n) drüber laufen und fertig.

            greetz
            Nils

            Comment


            • #7
              leider mit Umsetzung habe ich auch Probleme:

              so sieht VBA Code aus:

              '---- Hyperlink in Zelle A1 einfügen ------------------------
              Sub AddHyperlinkToCell()
              With ActiveSheet
              .Range("A1").Clear
              .Hyperlinks.Add Anchor:=.Range("A1"), _
              Address:="http://www.vb-fun.de/", _
              TextToDisplay:="VB-fun-Startseite"
              End With
              End Sub

              php Code
              PHP Code:

              $excel_cell 
              $Worksheet->Range("C4");
              $excel_cell->activate;
              $excel_cell->hyperlinks->add(.... und was jetzt??); 
              Last edited by jackfh; 04-09-2006, 09:41.

              Comment


              • #8
                add(.... und was jetzt??);
                Hmm, ich würde sagen: die Parameter nacheinander! Ohne vorangestellten Variablennamen natürlich.

                Comment


                • #9
                  PHP Code:
                  $excel_cell->hyperlinks->add("http://www.vb-fun.de/","VB-fun-Startseite"); 
                  so was geht leider nicht,

                  ich kriege folgende Fehlermeldung:

                  Fatal error: Uncaught exception 'com_exception' with message 'Parameter 1: Typkonflikt. ' in D:\apachefriends\xampp\htdocs\evia\excel_dsinfo_2.php:50 Stack trace: #0 D:\apachefriends\xampp\htdocs\evia\excel_dsinfo_2.php(50): variant->add('http://www.vb-f...', 'VB-fun-Startsei...') #1 {main} thrown in D:\apachefriends\xampp\htdocs\evia\excel_dsinfo_2.php on line 50

                  Comment


                  • #10
                    Dann guck nochmal genauer hin, was da für Parameter stehen! Es sind drei an der Zahl.

                    Comment


                    • #11
                      ja ich weiss aber so was funktioniert auch nicht:

                      PHP Code:
                      $excel_cell->hyperlinks->add("C4","http://www.vb-fun.de/","VB-fun-Startseite"); 
                      Fatal error: Uncaught exception 'com_exception' with message 'Parameter 2: Typkonflikt. ' in D:\apachefriends\xampp\htdocs\evia\excel_dsinfo_2.php:50 Stack trace: #0 D:\apachefriends\xampp\htdocs\evia\excel_dsinfo_2.php(50): variant->add('C4', 'http://www.vb-f...', 'VB-fun-Startsei...') #1 {main} thrown in D:\apachefriends\xampp\htdocs\evia\excel_dsinfo_2.php on line 50

                      Comment


                      • #12
                        Dann guck noch genauer hin und stelle fest, daß das C4 von einer Funktion umhüllt ist.

                        Comment

                        Working...
                        X