none
Veröffentlichen eines gesteuerten Worddokuments RRS feed

  • Frage

  • Hallo zuammen, ich weiß wie ich ein worddokument mit veröffentliche, nur bei meinen jetzigen versuchen, habe ich für das doc einen pfad angegeben. wenn ich das doc aber jetzt mit veröffentlichen will findet er ja den pfad nicht mehr

    ein bsp

    Sub Dateizugriff(Vorlagenname As String)
       Try
         m_wdApp = New Word.Application()
         m_wdApp.Visible = True
         If VorlagenName.EndsWith(".dot") = False Then
          VorlagenName &=".dot"
         End If
         m_wdDatei = m_wdApp.Documents.Add(C:\usw)
    frage:
    wie würde ihr ein WordDoc ansprechen das ihr mit veröffentlicht, der pfad des docs ist ja nicht bekannt?
    danke für die hilfe
    Mittwoch, 5. Mai 2010 21:03

Antworten

  • Hallo- ich habs ;o),

     

    NICHT Buildvorgang: Eingebettete Resource, SONDERN Inhalt ;o)

    DANKE

    Samstag, 8. Mai 2010 14:00
  • Hallo,

    da ist mir wohl auch ein Fehler unterlaufen. Ich habe Buildvorgang und "In Ausgabeverzeichnis kopieren" zusammen gemischt. Es muss natürlich als Buildvogang "Inhalt" ausgewählt sein und "In Ausgabeverzeichnis kopieren" "Kopieren, wenn neuer". Wenn Du das so eingestellt hast und Du Deine Anwendung mit ClickOnce verteilen möchtest, sollten Deine Word Vorlagen jetzt unter Projekt => Eigenschaften => Veröffentlichen => "Anwendungsdateien" erscheinen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 8. Mai 2010 14:09

Alle Antworten

  • Hallo Bergfeuer,

    den Pfad wirst du dir wohl besorgen müssen.

    Schau mal unter (Path.GetFullPath(strPath))

     


    Liebe Grüße Stefan
    Donnerstag, 6. Mai 2010 06:22
  • Hallo,

    worauf bezieht sich der Pfad denn? Auf das Profil des Benutzers? Vorinstallierten Vorlagen? Dein aktuelles Verzeichnis? Das Anwendungsverzeichnis?

    Wenn Dir der Pfad gänzlich unbekannt ist und immer variieren kann, musst Du den Benutzer mit dem FolderDialog zur Auswahl des passenden Pfades  bzw. dem OpenFileDialog zur Auswahl von Pfad und Dateinamen auffordern. Mit Hardcodierten Pfadangaben zu arbeiten ist hingegen die schlechteste aller Ideen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Donnerstag, 6. Mai 2010 08:50
  • Hallo, also die 4 WordDokument werden in eine Datei zur .exe gepackt.

    Über die Form kann der user verschiedene Dinge auswählen die auf das WordDok Auswirkung haben.

    Wenn der user das erstemal auf den Knopf drückt muss er wissen das das Dok nicht vorhanden ist und das er es suchen soll.

    damit dann hier m_wdApp.Documents.Add(C:\usw) also bei c der richtige link steht

    ABER wie gehts das, hab einiges ausprobiert auch die sachen im Galileo open office book vb.net einstieg. ich hab sowas nocht nicht gemacht.

    Bitte um Hilfe und Danke

    Freitag, 7. Mai 2010 14:14
  • Hallo,

    also liegen die Word-Dokumente/Vorlagen nach dem Setup neben Deiner Anwendungsdatei? Dann kannst Du mit Application.StartupPath das passende Verzeichnis ermitteln, aus dem Deine Anwendung (EXE) gestartet wurde:

    m_wdApp.Documents.Add(System.IO.Path.Combine(Application.StartupPath, "wordtemplate.dot"))


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Freitag, 7. Mai 2010 14:25
  • Danke

    Also die Word Klasse sieht beit mir jetzt so aus

    Sub Dateizugriff(ByVal Vorlagenname As String)
        Try
          m_wdApp = New Word.Application()
          '
          If Vorlagenname.EndsWith(".dot") = False Then
            Vorlagenname &= ".dot"
          End If
    
    
    
          m_wdDatei = m_wdApp.Documents.Add(System.IO.Path.Combine(Application.StartupPath, "wordtemplate.dot"))
    
        Catch ex As IOException
          MessageBox.Show(ex.Message)
    
        Catch ex As FileNotFoundException
    
          MessageBox.Show("so nicht!")
          MessageBox.Show(ex.Message)
          Exit Sub
        End Try
      End Sub

    Aber Application.StartupPath wird bei mir unterkringelt (Der Verweis auf einen nicht freigebenen Member erfordert ein Objktverweis

    und im Botton habe ich

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
        Dim WD As MyWordClass
        'Dim decB As Decimal
        WD = New MyWordClass()
    
    
        With WD
          .Dateizugriff(System.IO.Path.Combine(Application.StartupPath, "wordtemplate.dot"))
    
          '.TextmarkeFüllen(, _
          'System.DateTime.Today.ToShortDateString)
          '.TextmarkeFüllen("Datum1", _
          'System.DateTime.Today.ToShortDateString)
          .TextmarkeFüllen("Projekt", TextBox1_Projekt.Text)
    
          .TextmarkeFüllen("ProjektNr", TextBox2_ProjektNr.Text)
          .TextmarkeFüllen("AbNr", TextBox3_AB.Text)
    
          '.TextmarkeFüllen(
        End With
    hier wird es nit untergringelt... irgenwas ist falsch oder ich steh auf dem schlauch...
    Freitag, 7. Mai 2010 14:43
  • Hallo,

    versuche es mal mit einer vollqualifizierten Angabe in Deiner Word Klasse:

    System.Windows.Forms.Application.StartupPath

    Aber: In Deiner Methode "Dateizugriff" willst Du ja sicher die Datei öffnen, die über den Parameter "vorlagenname" angeben wird, oder?

    In Deiner Word Klasse hast Du wahrscheinlich die Anweisung:

    Imports Microsoft.Office.Interop.Word
    Dadurch meint VB, Du beziehst Dich auf das Microsoft.Office.Word.Application Objekt, das auch einen StartupPath Member hat, der aber den Pfad der Word Anwendung zurückgibt und nur über den Objektverweis gültig wäre (m_wdApp.StartupPath).
    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Freitag, 7. Mai 2010 14:53
  • Hallo,

    erster  Teil erfolg der kringel ist weg

    aber

    1. beim testen über den play knopf finder er die datei nicht. also ich habe noch kein exe erstellt.

    wo muss ich worddatei fürs test hinlegen

    2. muss ich wordtemplate.dot schreiben oder kann ich hier den richtigen namen der word datei angeben, da ich ja vier docs hab muss ja ein unterschied gemacht werden

    oder?

    Danke für dein hilfe echt klasse!

    Freitag, 7. Mai 2010 15:04
  • Hallo,

    am besten ist es, wenn Du die Datei(en) zu Deinem Projekt hinzufügst und dann bei den Eigenschaften der Datei (F4) unter "Buildaktion" [In Ausgabeverzeichnis kopieren] auswählst. Dann werden bei jedem Erstellen Deines Projekts, die Vorlagen in das Anwendungsverzeichnis kopiert.

    btw. Wenn Du die "Play" Schaltfläche betätigst, wird bereits ein Executable erzeugt und beim Debugging ausgeführt.

    Der Dateiname "wordtemplate.dot" war natürlich nur ein Beispiel, hier musst Du den richtigen Dateinamen Deiner Vorlagendatei einsetzen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Freitag, 7. Mai 2010 16:27
  • Danke du bist echt klasse und sehr nett! Werde es morgen ausprobieren.......Danke!
    Freitag, 7. Mai 2010 18:41
  • Hallo,

    also habe jetzt das WordDoc im Projekt (Buildvorgang: Eingebettete Ressource, In Ausgabeverzeichnis kopieren: Kopieren, wenn neuer)

    Wenn ich jetzt "play drücke" klappt es

    Aber an einem anderen Rechner findet er sie nicht

    auch ist die WordDatei nicht im ordner publish. Wenn ich sie manuell in der Ordner neben setup lege, findet er sich nicht und auch nicht wenn ich sie unter Apllication Files lege findet er sich nicht.

    Irgendwas ist noch falsch

    Grüsse

     

    Samstag, 8. Mai 2010 13:43
  • Hallo- ich habs ;o),

     

    NICHT Buildvorgang: Eingebettete Resource, SONDERN Inhalt ;o)

    DANKE

    Samstag, 8. Mai 2010 14:00
  • Hallo,

    da ist mir wohl auch ein Fehler unterlaufen. Ich habe Buildvorgang und "In Ausgabeverzeichnis kopieren" zusammen gemischt. Es muss natürlich als Buildvogang "Inhalt" ausgewählt sein und "In Ausgabeverzeichnis kopieren" "Kopieren, wenn neuer". Wenn Du das so eingestellt hast und Du Deine Anwendung mit ClickOnce verteilen möchtest, sollten Deine Word Vorlagen jetzt unter Projekt => Eigenschaften => Veröffentlichen => "Anwendungsdateien" erscheinen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 8. Mai 2010 14:09