none
Word / Excel-Dateien bearbeiten RRS feed

  • Frage

  • Hallo zusammen

    In meinem Programm kann ich Text-, Word- und Excel-Dateien bearbeiten (also neu erstellen, öffnen, speichern und löschen). Das mit der Textdatei funktioniert ausgezeichnet, darum habe ich das nicht im Titel vermerkt. 

    Probleme:

    1.) Bei der Word-Datei Bearbeitung habe ich ein Problem beim Speichern: Ich lösche zuerst die Datei und erstelle sie neu, dass ich nur den Text reinkrieg, der reingehört. Ausserdem wird Microsoft Word geöffnet und gefragt, ob ich die Änderungen speichern will. Dies sollte es aber automatisch machen, da ich nicht will, dass sich Microsoft Word öffnet.

    2.) Bei der Excel-Datei möchte ich, dass sie sich nebenbei öffnet. Nun kann ich aber im unteren Code nicht in die ausgewählte Zelle ($uno/$due) schreiben ($tre).

    $ws.Cells.Item($uno,$due).value2 = $tre
    

    Und ich weiss auch nicht, ob das speichern danach funktioniert. 

    Ich hoffe mir kann jemand bei meinen Problemen helfen!

    Besten Dank im Voraus

    ---------------------------------------------------------------------------------------------------------------------------------

    Ganzer Programmcode:

    #####################################
    # Skriptname: Projektarbeit_v01.ps1 #
    # Autor:      Alexander Wälchli     #
    # Datum:      15.10.2012            #
    #####################################
    
    ##########################################################################################################
    function StartForm {
    # Objekte
    	$form = New-Object System.Windows.Forms.Form
    	$label = New-Object System.Windows.Forms.Label
    	$button_text = New-Object System.Windows.Forms.Button
    	$button_word = New-Object System.Windows.Forms.Button
    	$button_exel = New-Object System.Windows.Forms.Button
    
    # Adden der Objekte
    	$form.Controls.Add($label)
    	$form.Controls.Add($button_text)
    	$form.Controls.Add($button_word)
    	$form.Controls.Add($button_exel)
    
    # Eigenschaften der Objekte
    	$form.TopMost = $true
    	$form.Text = "Projektarbeit | Alexander Wälchli und Timothy Locher"
    	$form.Height = 110
    	$form.Width = 1000
    
    	$label.Text = "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Startseite ////////"
    	$label.Height = 15
    	$label.Width = 980
    	$label.Location = New-Object Drawing.Point 10,45
    
    	$button_text.Text = "Textdatei"
    	$button_text.Height = 25
    	$button_text.Width = 130
    	$button_text.Location = New-Object Drawing.Point 10,10
    
    	$button_word.Text = "Word-Datei"
    	$button_word.Height = 25
    	$button_word.Width = 130
    	$button_word.Location = New-Object Drawing.Point 150,10
    
    	$button_exel.Text = "Excel-Datei"
    	$button_exel.Height = 25
    	$button_exel.Width = 130
    	$button_exel.Location = New-Object Drawing.Point 290,10
    
    	
    # Aktionen der Objekte
    	# Menu Auswahl
    	$button_text.Add_Click({$form.Visible=$false;TextForm})
    	$button_word.Add_Click({$form.Visible=$false;WordForm})
    	$button_exel.Add_Click({$form.Visible=$false;Exelform})
    
    #
    	$form.ShowDialog()
    }
    
    ##########################################################################################################
    function TextForm {
    # Objekte
    	$form2 = New-Object System.Windows.Forms.Form
    	$label = New-Object System.Windows.Forms.Label
    	$label2 = New-Object System.Windows.Forms.Label
    	$label_status = New-Object System.Windows.Forms.Label
    	$button_start = New-Object System.Windows.Forms.Button
    	$button_text = New-Object System.Windows.Forms.Button
    	$button_word = New-Object System.Windows.Forms.Button
    	$button_exel = New-Object System.Windows.Forms.Button
    	$button_new = New-Object System.Windows.Forms.Button
    	$button_open = New-Object System.Windows.Forms.Button
    	$button_save = New-Object System.Windows.Forms.Button
    	$button_delete = New-Object System.Windows.Forms.Button
    	$button_ok = New-Object System.Windows.Forms.Button
    	$read = New-Object System.Windows.Forms.Textbox
    	$anzeige = New-Object System.Windows.Forms.TextBox
    
    # Adden der Objekte
    	$form2.Controls.Add($label)
    	$form2.Controls.Add($label2)
    	$form2.Controls.Add($label_status)
    	$form2.Controls.Add($button_start)
    	$form2.Controls.Add($button_text)
    	$form2.Controls.Add($button_word)
    	$form2.Controls.Add($button_exel)
    	$form2.Controls.Add($button_new)
    	$form2.Controls.Add($button_open)
    	$form2.Controls.Add($button_save)
    	$form2.Controls.Add($button_delete)
    	$form2.Controls.Add($button_ok)
    	$form2.Controls.Add($read)
    	$form2.Controls.Add($anzeige)
    
    # Eigenschaften der Objekte
    	$form2.TopMost = $true
    	$form2.Text = "Projektarbeit | Alexander Wälchli und Timothy Locher"
    	$form2.Height = 500
    	$form2.Width = 1000
    
    	$label.Text = "--> Textdatei bearbeiten /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
    	$label.Height = 15
    	$label.Width = 980
    	$label.Location = New-Object Drawing.Point 10,45
    	
    	$label2.Text = "//////////////////////////////////////////////////////////////"
    	$label2.Height= 360
    	$label2.Location = New-Object Drawing.Point 150,90
    	$label2.Width = 10
    	
    	$label_status.Text = "Status: Noch keinen Dateipfad eingegeben!"
    	$label_status.Height = 20
    	$label_status.Width = 300
    	$label_status.Location = New-Object Drawing.Point 550,95
    
    	$button_start.Text = "Startseite"
    	$button_start.Height = 25
    	$button_start.Width = 130
    	$button_start.Location = New-Object Drawing.Point 825,10
    
    	$button_text.Text = "Textdatei"
    	$button_text.Height = 25
    	$button_text.Width = 130
    	$button_text.Location = New-Object Drawing.Point 10,10
    
    	$button_word.Text = "Word-Datei"
    	$button_word.Height = 25
    	$button_word.Width = 130
    	$button_word.Location = New-Object Drawing.Point 150,10
    
    	$button_exel.Text = "Excel-Datei"
    	$button_exel.Height = 25
    	$button_exel.Width = 130
    	$button_exel.Location = New-Object Drawing.Point 290,10
    	
    	$button_new.Text = "Neu"
    	$button_new.Height = 25
    	$button_new.Width = 130
    	$button_new.Location = New-Object Drawing.Point 10,90
    
    	$button_open.Text = "Öffnen"
    	$button_open.Height = 25
    	$button_open.Width = 130
    	$button_open.Location = New-Object Drawing.Point 10,125
    	
    	$button_save.Text = "Speichern"
    	$button_save.Height = 25
    	$button_save.Width = 130
    	$button_save.Location = New-Object Drawing.Point 10,160
    
    	$button_delete.Text = "Löschen"
    	$button_delete.Height = 25
    	$button_delete.Width = 130
    	$button_delete.Location = New-Object Drawing.Point 10,195
    	
    	$button_ok.Text = "OK"
    	$button_ok.Height = 20
    	$button_ok.Width = 30
    	$button_ok.Location = New-Object Drawing.Point 510, 90
    	
    	$read.Text = "Bitte Dateipfad eingeben, z.B. c:\dokumente\text.txt"
    	$read.Height = 25
    	$read.Width = 300
    	$read.Location = New-Object Drawing.Point 200,90
    	
    	$anzeige.Text = ""
    	$anzeige.Height = 500
    	$anzeige.Width =  750
    	$anzeige.Location = New-Object Drawing.Point 200,130
    	
    # Aktionen der Objekte
    	#Menu Auswahl
    	$button_start.Add_Click({$form2.Visible=$false;StartForm})
    	$button_text.Add_Click({;})
    	$button_word.Add_Click({$form2.Visible=$false;WordForm})
    	$button_exel.Add_Click({$form2.Visible=$false;Exelform})
    
    	# Speichern des Dateipfades in eine Variabel
    	$a = ""
    	$button_ok.Add_Click({$a = $read.Text;if((Test-Path -Path $a)){$label_status.Text = "Status: Dateipfad wurde gespeichert!"}else{$label_status.Text = "Status: Datei existiert noch nicht / Falscher Dateipfad!!!";}})
    	
    	# Neue Datei erstellen
    	$button_new.Add_Click({New-Item $a -type file;$label_status.Text="Status: Datei wurde erstellt!"})
    
    	# Öffnen der ausgewählten Datei
    	$button_open.Add_Click({$anzeige.Text = Get-Content $a;$label_status.Text="Status: Datei wurde geöffnet!"})
    	
    	# Speichern der bearbeiteten Datei
    	$b = ""
    	$button_save.Add_Click({$b = $anzeige.Text; $b > $a; $label_status.Text="Status: Datei wurde gespeichert!"})
    	
    	# Löschen der ausgewählten Datei
    	$button_delete.Add_Click({Remove-Item $a;$label_status.Text="Status: Datei wurde gelöscht!"})
    			
    #
    	$form2.ShowDialog()
    }
    
    ##########################################################################################################
    function WordForm {
    # Objekte
    	$form3 = New-Object System.Windows.Forms.Form
    	$label = New-Object System.Windows.Forms.Label
    	$label2 = New-Object System.Windows.Forms.Label
    	$label_status = New-Object System.Windows.Forms.Label
    	$button_start = New-Object System.Windows.Forms.Button
    	$button_text = New-Object System.Windows.Forms.Button
    	$button_word = New-Object System.Windows.Forms.Button
    	$button_exel = New-Object System.Windows.Forms.Button
    	$button_new = New-Object System.Windows.Forms.Button
    	$button_open = New-Object System.Windows.Forms.Button
    	$button_save = New-Object System.Windows.Forms.Button
    	$button_delete = New-Object System.Windows.Forms.Button
    	$button_ok = New-Object System.Windows.Forms.Button
    	$read = New-Object System.Windows.Forms.Textbox
    	$anzeige = New-Object System.Windows.Forms.Textbox
    
    # Adden der Objekte
    	$form3.Controls.Add($label)
    	$form3.Controls.Add($label2)
    	$form3.Controls.Add($label_status)
    	$form3.Controls.Add($button_start)
    	$form3.Controls.Add($button_text)
    	$form3.Controls.Add($button_word)
    	$form3.Controls.Add($button_exel)
    	$form3.Controls.Add($button_new)
    	$form3.Controls.Add($button_open)
    	$form3.Controls.Add($button_save)
    	$form3.Controls.Add($button_delete)
    	$form3.Controls.Add($button_ok)
    	$form3.Controls.Add($read)
    	$form3.Controls.Add($anzeige)
    
    
    # Eigenschaften der Objekte
    	$form3.TopMost = $true
    	$form3.Text = "Projektarbeit | Alexander Wälchli und Timothy Locher"
    	$form3.Height = 500
    	$form3.Width = 1000
    
    	$label.Text = "//////////////////////////// --> Word-Datei bearbeiten ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
    	$label.Height = 15
    	$label.Width = 980
    	$label.Location = New-Object Drawing.Point 10,45
    	
    	$label2.Text = "//////////////////////////////////////////////////////////////"
    	$label2.Height= 360
    	$label2.Width = 10
    	$label2.Location = New-Object Drawing.Point 150,90
    	
    	$label_status.Text = "Status: Noch keinen Dateipfad eingegeben!"
    	$label_status.Height = 20
    	$label_status.Width = 300
    	$label_status.Location = New-Object Drawing.Point 550,95
    
    	$button_start.Text = "Startseite"
    	$button_start.Height = 25
    	$button_start.Width = 130
    	$button_start.Location = New-Object Drawing.Point 825,10
    
    	$button_text.Text = "Textdatei"
    	$button_text.Height = 25
    	$button_text.Width = 130
    	$button_text.Location = New-Object Drawing.Point 10,10
    
    	$button_word.Text = "Word-Datei"
    	$button_word.Height = 25
    	$button_word.Width = 130
    	$button_word.Location = New-Object Drawing.Point 150,10
    
    	$button_exel.Text = "Excel-Datei"
    	$button_exel.Height = 25
    	$button_exel.Width = 130
    	$button_exel.Location = New-Object Drawing.Point 290,10
    	
    	$button_new.Text = "Neu"
    	$button_new.Height = 25
    	$button_new.Width = 130
    	$button_new.Location = New-Object Drawing.Point 10,90
    
    	$button_open.Text = "Öffnen"
    	$button_open.Height = 25
    	$button_open.Width = 130
    	$button_open.Location = New-Object Drawing.Point 10,125
    	
    	$button_save.Text = "Speichern"
    	$button_save.Height = 25
    	$button_save.Width = 130
    	$button_save.Location = New-Object Drawing.Point 10,160
    
    	$button_delete.Text = "Löschen"
    	$button_delete.Height = 25
    	$button_delete.Width = 130
    	$button_delete.Location = New-Object Drawing.Point 10,195
    	
    	$button_ok.Text = "OK"
    	$button_ok.Height = 20
    	$button_ok.Width = 30
    	$button_ok.Location = New-Object Drawing.Point 510, 90
    	
    	$read.Text = "Bitte Dateipfad eingeben, z.B. c:\dokumente\word.docx"
    	$read.Height = 25
    	$read.Width = 300
    	$read.Location = New-Object Drawing.Point 200,90
    	
    	$anzeige.Text = ""
    	$anzeige.Height = 500
    	$anzeige.Width =  750
    	$anzeige.Location = New-Object Drawing.Point 200,130
    
    # Aktionen der Objekte
    	# Menu Auswahl
    	$button_start.Add_Click({$form3.Visible=$false;StartForm})
    	$button_text.Add_Click({$form3.Visible=$false;TextForm})
    	$button_word.Add_Click({;})
    	$button_exel.Add_Click({$form3.Visible=$false;Exelform})
    	
    	# Speichern des Dateipfades in eine Variabel
    	$a = ""
    	$button_ok.Add_Click({$a = $read.Text;if((Test-Path -Path $a)){$label_status.Text = "Status: Dateipfad wurde gespeichert!"}else{$label_status.Text = "Status: Datei existiert noch nicht / Falscher Dateipfad!!!";}})
    
    	# Word-Datei erstellen
    	$button_new.Add_Click({
    		$word = New-Object -comobject Word.Application
    		$doc=$word.documents.Add()
    		$doc.SaveAs([ref]$a)
    		$doc.Close()
    		$word.quit()
    		$label_status.Text = "Status: Datei wurde erstellt!"
    	})
    	
    	# Word-Datei öffnen
    	$button_open.Add_Click({
    		$word = New-Object -ComObject Word.Application
    		$word.Visible = $false
    		$inhalt = $word.Documents.Open($a)
    		$inhalt.ActiveWindow.Selection.WholeStory()
    		$inhalt.ActiveWindow.Selection.Copy()
    		$text = [System.Windows.Forms.Clipboard]::GetText()
    		[System.Windows.Forms.Clipboard]::Clear()
    		$anzeige.Text = $text
    		$word.quit()
    		$label_status.Text = "Status: Datei wurde geöffnet!"
    	})
    	
    	# Speichern der bearbeiteten Datei
    	$button_save.Add_Click({
    		Remove-Item $a
    		$word = New-Object -comobject Word.Application
    		$doc=$word.documents.Add()
    		$doc.SaveAs([ref]$a)
    		$doc.Close()
    		$word.Visible = $true
    		$word.DisplayAlerts = $False
    		$dokument = $word.Documents.Open($a)
    		$word.Selection.TypeText($anzeige.Text)
    		$word.Save()
    		$word.quit()
    		$label_status.Text = "Datei wurde gespeichert!"
    	})
    		
    	# Löschen der ausgewählten Datei
    	$button_delete.Add_Click({Remove-Item $a;$label_status.Text="Status: Datei wurde gelöscht!"})
    
    #
    	$form3.ShowDialog()
    }
    
    ##########################################################################################################
    function ExelForm {
    # Objekte
    	$form4 = New-Object System.Windows.Forms.Form
    	$label = New-Object System.Windows.Forms.Label
    	$label2 = New-Object System.Windows.Forms.Label
    	$label_x = New-Object System.Windows.Forms.Label
    	$label_y = New-Object System.Windows.Forms.Label
    	$label_des = New-Object System.Windows.Forms.Label
    	$label_status = New-Object System.Windows.Forms.Label
    	$button_start = New-Object System.Windows.Forms.Button
    	$button_text = New-Object System.Windows.Forms.Button
    	$button_word = New-Object System.Windows.Forms.Button
    	$button_exel = New-Object System.Windows.Forms.Button
    	$button_new = New-Object System.Windows.Forms.Button
    	$button_open = New-Object System.Windows.Forms.Button
    	$button_save = New-Object System.Windows.Forms.Button
    	$button_delete = New-Object System.Windows.Forms.Button
    	$button_ok = New-Object System.Windows.Forms.Button
    	$read = New-Object System.Windows.Forms.Textbox
    	$xkor = New-Object System.Windows.Forms.TextBox
    	$ykor = New-Object System.Windows.Forms.TextBox
    	$text = New-Object System.Windows.Forms.Textbox
    
    # Adden der Objekte
    	$form4.Controls.Add($label)
    	$form4.Controls.Add($label2)
    	$form4.Controls.Add($label_x)
    	$form4.Controls.Add($label_y)
    	$form4.Controls.Add($label_des)
    	$form4.Controls.Add($label_status)
    	$form4.Controls.Add($button_start)
    	$form4.Controls.Add($button_text)
    	$form4.Controls.Add($button_word)
    	$form4.Controls.Add($button_exel)
    	$form4.Controls.Add($button_new)
    	$form4.Controls.Add($button_open)
    	$form4.Controls.Add($button_save)
    	$form4.Controls.Add($button_delete)
    	$form4.Controls.Add($button_ok)
    	$form4.Controls.Add($read)
    	$form4.Controls.Add($xkor)
    	$form4.Controls.Add($ykor)
    	$form4.Controls.Add($text)
    
    # Eigenschaften der Objekte
    	$form4.TopMost = $true
    	$form4.Text = "Projektarbeit | Alexander Wälchli und Timothy Locher"
    	$form4.Height = 500
    	$form4.Width = 1000
    
    	$label.Text = "/////////////////////////////////////////////////////// --> Excel-Datei bearbeiten ///////////////////////////////////////////////////////////////////////////////////////////////////////////"
    	$label.Height = 15
    	$label.Width = 980
    	$label.Location = New-Object Drawing.Point 10,45
    	
    	$label2.Text = "//////////////////////////////////////////////////////////////"
    	$label2.Height= 360
    	$label2.Width = 10
    	$label2.Location = New-Object Drawing.Point 150,90
    	
    	$label_status.Text = "Status: Noch keinen Dateipfad eingegeben!"
    	$label_status.Height = 20
    	$label_status.Width = 300
    	$label_status.Location = New-Object Drawing.Point 550,95
    	
    	$label_x.Text = "Spalte:"
    	$label_x.Height = 20
    	$label_x.Width = 50
    	$label_x.Location = New-Object Drawing.Point 200,133
    	
    	$label_y.Text = "Zeile:"
    	$label_y.Height = 20
    	$label_y.Width = 50
    	$label_y.Location = New-Object Drawing.Point 200,173
    	
    	$label_des.Text = "Eingabe:"
    	$label_des.Height = 20
    	$label_des.Width = 50
    	$label_des.Location = New-Object Drawing.Point 200,213
    	
    	$button_start.Text = "Startseite"
    	$button_start.Height = 25
    	$button_start.Width = 130
    	$button_start.Location = New-Object Drawing.Point 825,10
    
    	$button_text.Text = "Textdatei"
    	$button_text.Height = 25
    	$button_text.Width = 130
    	$button_text.Location = New-Object Drawing.Point 10,10
    
    	$button_word.Text = "Word-Datei"
    	$button_word.Height = 25
    	$button_word.Width = 130
    	$button_word.Location = New-Object Drawing.Point 150,10
    
    	$button_exel.Text = "Excel-Datei"
    	$button_exel.Height = 25
    	$button_exel.Width = 130
    	$button_exel.Location = New-Object Drawing.Point 290,10
    	
    	$button_new.Text = "Neu"
    	$button_new.Height = 25
    	$button_new.Width = 130
    	$button_new.Location = New-Object Drawing.Point 10,90
    
    	$button_open.Text = "Öffnen"
    	$button_open.Height = 25
    	$button_open.Width = 130
    	$button_open.Location = New-Object Drawing.Point 10,125
    	
    	$button_save.Text = "Speichern"
    	$button_save.Height = 25
    	$button_save.Width = 130
    	$button_save.Location = New-Object Drawing.Point 10,160
    
    	$button_delete.Text = "Löschen"
    	$button_delete.Height = 25
    	$button_delete.Width = 130
    	$button_delete.Location = New-Object Drawing.Point 10,195
    	
    	$button_ok.Text = "OK"
    	$button_ok.Height = 20
    	$button_ok.Width = 30
    	$button_ok.Location = New-Object Drawing.Point 510, 90
    	
    	$read.Text = "Bitte Dateipfad eingeben, z.B. c:\dokumente\excel.xlsx"
    	$read.Height = 25
    	$read.Width = 300
    	$read.Location = New-Object Drawing.Point 200,90
    	
    	$xkor.Text = ""
    	$xkor.Height = 30
    	$xkor.Width =  30
    	$xkor.Location = New-Object Drawing.Point 250,130
    	
    	$ykor.Text = ""
    	$ykor.Height = 30
    	$ykor.Width =  30
    	$ykor.Location = New-Object Drawing.Point 250,170
    
    	$text.Text = ""
    	$text.Height = 30
    	$text.Width =  30
    	$text.Location = New-Object Drawing.Point 250,210
    
    #Aktionen der Objekte
    	#Menu Auswahl
    	$button_start.Add_Click({$form4.Visible=$false;StartForm})
    	$button_text.Add_Click({$form4.Visible=$false;TextForm})
    	$button_word.Add_Click({$form4.Visible=$false;WordForm})
    	$button_exel.Add_Click({;})
    
    	# Speichern des Dateipfades in eine Variabel
    	$a = ""
    	$button_ok.Add_Click({$a = $read.Text;if((Test-Path -Path $a)){$label_status.Text = "Status: Dateipfad wurde gespeichert!"}else{$label_status.Text = "Status: Datei existiert noch nicht / Falscher Dateipfad!!!";}})
    
    	# Excel-Datei erstellen
    	$button_new.Add_Click({
    		$excel = New-Object -comobject Excel.Application
    		$wb = $excel.Workbooks.Add()
    		$ws = $wb.Worksheets.Item(1)
    		$ws.Cells.Item(1,1) = ""
    		$wb.SaveAs($a)
    		$excel.Quit()
    		$label_status.Text = "Status: Datei wurde erstellt!"
    	})
    	
    	# Excel-Datei öffnen
    	$button_open.Add_Click({
    		$excel = New-Object -ComObject Excel.Application
    		$excel.Visible = $true
    		$excel.DisplayAlerts = $False
    		$wb = $excel.Workbooks.Open($a)
    		$label_status.Text = "Status: Datei wurde geöffnet!"
    	})
    	
    	# Speichern der bearbeiteten Datei
    	$button_save.Add_Click({
    		$uno=0
    		$due=0
    		$tre=""
    		$uno = $xkor.Text
    		$due = $ykor.Text
    		$tre = $text.Text
    		$wb = $excel.Workbooks.Add()
    		$ws = $excel.Worksheets.Add()
    		$ws = $wb.Worksheets.Add()
    		$ws.Cells.Item($uno,$due).value2 = $tre
    		$wb.Save()
    		$label_status.Text = "Datei wurde gespeichert!"
    	})
    	# Löschen der ausgewählten Datei
    	$button_delete.Add_Click({Remove-Item $a;$label_status.Text="Status: Datei wurde gelöscht!"})
    
    #
    	$form4.ShowDialog()
    }
    
    ##################################################################################
    
    StartForm

    Mittwoch, 17. Oktober 2012 16:54

Antworten

Alle Antworten

  • Du benutzt den SaveAs Dialog dieser kann nicht unterdrückt werden!
    Siehe diskusion hier:
    http://windowssecrets.com/forums/showthread.php/28928-Word-IE-Automation-trapping-Save-Changes-prompt-%28VBA-Word-97-2000%29

    Ich würde nicht den Workarround  nehmen der dort vorgeschlagen wird, da Word dazu immernoch sichtbar wird oder aufblitzt.
    Ich schlage ich folgenden vorgehensweise vor:
    1. Altes doc löschen falls vorhanden.
    2. neues doc anlegen (leer)
    3. neues doc öffnen text einfügen und die save() methode benutzen nicht den saveAs dialog!
    3. doc schliessen

    Ich finde eure GUI oberfläche doch sehr ungewöhnlich!
    Ich würde nur ein Fenster erstellen und in diesem mit Tab-Contols Arbeiten.
    Habt Ihr die GUI per hand erstellt? Das geht einfacher !
    Schau dir dazu unbedingt mal mein PowerShell Windows Forms Video an!:

    http://youtu.be/y76LO5VIN24


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Donnerstag, 18. Oktober 2012 06:59
  • Hallo Peter

    Danke für Deine Antwort, dein Link ist wirklich sehr nützlich!

    Ja, ich habe das GUI per Hand erstellt. Dank Deinem Link werde ich das aber sofort überarbeiten. 

    Dann sehe ich ein Problem bei deiner Idee nur mit Save() - ich bekam eine Fehlermeldung (welche kann ich jetzt nicht genau sagen, werde sie morgen posten). Ich denke das liegt daran, dass man die Datei nicht speichern kann, ohne jemals einen Zielort definiert zu haben. Kann das stimmen?

    @all 

    Weiss vielleicht jemand, wieso das bei mir mit dem in die Zelle schreiben nicht funktioniert (siehe Codezeile unten)? 

    $ws.Cells.Item($uno,$due).value2 = $tre

    Danke für eure Hilfe!


    • Bearbeitet rugkei Montag, 22. Oktober 2012 17:52
    Montag, 22. Oktober 2012 17:51
  • Ich denke das liegt daran, dass man die Datei nicht speichern kann, ohne jemals einen Zielort definiert zu haben. Kann das stimmen?

    Da hast du natürlich recht! Grosser denkfehler von mir!

    Bei mir Speichert Word 2010 die Datei mit diesem Code Ohne das ich etwas zu sehen bekomme !

    $word = New-Object -comobject Word.Application
    $doc=$word.documents.Add()
    $doc.SaveAs([ref]'C:\temp\wordtest.docx')
    $doc.Close()
    $word.quit()


     Weiss vielleicht jemand, wieso das bei mir mit dem in die Zelle schreiben nicht funktioniert (siehe Codezeile unten)? 
    $ws.Cells.Item($uno,$due).value2 = $tre

    Du musst hier bitte präziser Fragen! Word hat auch eine Cell Funktion da du hier Cells geschrieben hast, vermute ich du meinst Excel!?

    Ebenso gibt es teilweise eklatante unterschiede von einer MS Office Version zur anderen(Office 97, Office 3003, Office 2007, Office 2010, Office 2012). Bitte gib deshalb an für welche Ziel-Version du diesen Code haben möchtest!

    ----------------------

    Du hast die Klammern hinter Value2() vergessen !

    $ws.Cells.Item($uno,$due).value2() = $tre


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!




    Dienstag, 23. Oktober 2012 06:27
  • Wenn ich die Datei erstelle, bekomme ich auch keine Abfrage, ob ich speichern möchte oder nicht. Sobald ich aber den Text einfüge und speichern möchte (nur mit Save() !!), dann wird abgefragt. Siehe Code hier:

    $dokument=$word.Documents.Open($a)

    $word.Selection.TypeText($anzeige.Text)

    $word.Save()

    -------------------------------

    Nun zur Excel-Datei. Danke für deinen Tipp, es funktioniert fast!

    Leider kann ich nur in die Zellen schreiben, welche ich manuell angebe (im Code hier unten jetzt 1/1). Weisst du was ich machen kann, dass es in die Zelle schreibt, welche ich mit meinen Variabeln angebe? Code:

    $ws

    .Cells.Item(1,1#$uno,$due).value() =$tre

    • Bearbeitet rugkei Dienstag, 23. Oktober 2012 08:42
    Dienstag, 23. Oktober 2012 08:40
  • Folgendes Funktioniert bei mir!

    Word:

    $word = New-Object -comobject Word.Application
    $dokument=$word.Documents.Open('C:\temp\wordtest.docx')
    $word.Selection.TypeText("Willkommen in der Word World!")
    $dokument.Save()
    # Optional!:   $dokument.saved = $True
    $dokument.Close()
    $word.quit()

    Excel:

    $un = 1
    $dos = 1
    $tres = 3
            
    $excel = New-Object -comobject Excel.Application
    $excel.visible = $True
    $wb = $excel.Workbooks.Add()
    $ws = $wb.Worksheets.Item(1)
    $ws.Cells.Item($un,$dos) = $Tres

    Wenn du mit Visible= $False Arbeites musst du in deinem Windows Taskmanager schauen ob ein Dokument nicht noch unsichtbar offen ist !!!
    (Offene Excel.exe oder Word.exe Task beenden!)

    Für eine referenz Word nutze dieses Dokument:
    http://msdn.microsoft.com/en-us/library/aa272097%28v=office.11%29.aspx

    Für Excel:
    http://msdn.microsoft.com/en-us/library/aa272268%28v=office.11%29.aspx

    Für die Referenz zu windows Forms nutze:
    http://openbook.galileocomputing.de/visual_csharp/visual_csharp_13_001.htm


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!



    Dienstag, 23. Oktober 2012 09:28
  • Jetzt funktioniert es auch bei mir, vielen Dank!
    Montag, 29. Oktober 2012 18:08
  • Dann Markiere bitte alle Antworten als Antwort.
    Weitere Fragen können wir dan in einem neuen Thread erörtern.


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Dienstag, 30. Oktober 2012 06:30