COM php

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

  • 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??
    Zuletzt geändert von jackfh; 04.09.2006, 10: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.

    Kommentar


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

      Kommentar


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

        Kommentar


        • #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!

          Kommentar


          • #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

            Kommentar


            • #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??); 
              Zuletzt geändert von jackfh; 04.09.2006, 10:41.

              Kommentar


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

                Kommentar


                • #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

                  Kommentar


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

                    Kommentar


                    • #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

                      Kommentar


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

                        Kommentar

                        Lädt...
                        X