Thema: Manipulation von Word --> deployment
Am 29.01.2011 - 17:22 im Forum: Office-Technologien
Hallo Sebastian
Danke für deinen Tipp!!!
damit hat es geklappt
für alle die es interessiert der fertige code
// Word.Application-Objekt erzeugen
ComObject word = new ComObject("Word.Application");
// Sichtbar machen
word.SetProperty("Visible", true);
// Dokument-Auflistung abrufen
ComObject documents = word.GetObjectReturningProperty("Documents");
// Neues Dokument erzeugen
ComObject document = documents.InvokeObjectReturningFunction("Open", @"D:\xy.doc");
ComObject Shapes = document.GetObjectReturningProperty("Shapes");
int PicCount = (int)Shapes.GetProperty("Count");
for (int i = PicCount; i > 0; i--)
{
ComObject shapeObject = Shapes.InvokeObjectReturningFunction("Item", i);
int shapeType = (int)shapeObject.GetProperty("Type");
// Microsoft.Office.Core.MsoShapeType.msoPicture
if(shapeType == 13)
{
shapeObject.InvokeFunction("Delete");
}
shapeObject.Dispose();
}
// Verweise auf Dokument und Dokumentauflistung entsorgen
document.Dispose();
documents.Dispose();
// Word beenden ohne zu speichern
word.InvokeProcedure("Quit", 0);
// Word-Instanz entsoregn
word.Dispose();
Thema: Manipulation von Word --> deployment
Am 28.01.2011 - 08:50 im Forum: Office-Technologien
Hallo
mein Problem ist:
ComObject Shapes = document.GetObjectReturningProperty("Shapes");
liefert ein ComObject
ich würde aber so wie bei Interop ein array erwarten, damit ich mit shapes auf ein shape zugreifen kann.
da ich noch nie mit latebinding zu tun hatte, weiss ich jetzt nicht, wie ich shapes casten soll, damit es ein array wird, bzw. ob es eine Möglichkeit gibt, direkt auf eines der Array-Elemente zuzugreifen, um zu überprüfen, ob es sich um ein "msoPicture" handelt.
ich hoffe jetzt ist mein Problem etwas klarer und ihr könnt mir helfen....
danke schon mal für eure Bemühungen
Thema: Manipulation von Word --> deployment
Am 22.01.2011 - 17:42 im Forum: Office-Technologien
Hallo
erstmal danke für deinen Tipp mit dem Wrapper, er hat mich schon sehr weit gebracht !!
ich möchte auf Bilder in einem Wordfile zugreifen
// Word.Application-Objekt erzeugen
ComObject word = new ComObject("Word.Application");
// Sichtbar machen
word.SetProperty("Visible", true);
// Dokument-Auflistung abrufen
ComObject documents = word.GetObjectReturningProperty("Documents");
// Dokument öffnen
ComObject document = documents.InvokeObjectReturningFunction("Open", @"D:\xy.doc");
ComObject Shapes = document.GetObjectReturningProperty("Shapes");
int PicCount = (int)Shapes.GetProperty("Count");
for (int i = PicCount; i > 0; i--)
{
if (Shapes[i].Type == Microsoft.Office.Core.MsoShapeType.msoPicture) // <------------
{
Shapes[i].Delete(); // <------------
} }
mein Problem sind jetzt die letzten Zeilen....
ich habe keine Ahnung wie ich das ComObjekt Shapes durchgehen kann um zB wenn es sich um ein Bild handelt diesen Shape zu löschen
ich hoffe du kannst mir helfen
LG Roschi
Thema: Allgemeiner COM-Wrapper für Späte Bindung
Am 22.01.2011 - 13:54 im Forum: .NET-Komponenten und C#-Snippets
Hallo
erstmal danke für deinen Wrapper, er hat mich schon sehr weit gebracht !!
Allerdings habe ich noch ein Problem. ich arbeite gerade an meinem 1. Projekt mit ComObjekten.
ich möchte auf Bilder in einem Wordfile zugreifen
// Word.Application-Objekt erzeugen
ComObject word = new ComObject("Word.Application");
// Sichtbar machen
word.SetProperty("Visible", true);
// Dokument-Auflistung abrufen
ComObject documents = word.GetObjectReturningProperty("Documents");
// Dokument öffnen
ComObject document = documents.InvokeObjectReturningFunction("Open", @"D:\xy.doc");
ComObject Shapes = document.GetObjectReturningProperty("Shapes");
int PicCount = (int)Shapes.GetProperty("Count");
for (int i = PicCount; i > 0; i--)
{
if (Shapes[i].Type == Microsoft.Office.Core.MsoShapeType.msoPicture) // <------------
{
Shapes[i].Delete(); // <------------
} }
mein Problem sind jetzt die letzten Zeilen....
ich habe keine Ahnung wie ich das ComObjekt Shapes durchgehen kann um zB wenn es sich um ein Bild handelt diesen Shape zu löschen
ich hoffe du kannst mir helfen
LG Roschi
Thema: Manipulation von Word --> deployment
Am 21.01.2011 - 10:23 im Forum: Office-Technologien
Hallo
du bist eine Wucht!
ich werde mir das heute abend genauer anschauen (ist quasi ein "privates" Projekt)
ich habe gestern den ganzen abend damit verbracht danach zu suchen
danke einstweilen
mfg Roschi
Thema: Manipulation von Word --> deployment
Am 21.01.2011 - 09:33 im Forum: Office-Technologien
Hallo
ich hoffe ihr könnt mir helfen
mir fehlt irgendwie der Schubs in die richtige Richtung....
folgende Situation:
Ich habe eine App (VS 2010 c# O2010) geschrieben, die alle Wordfiles in einem Verzeichnis öffnet, manipuliert und wieder speichert. Ich verwende dafür die interop.word (für word 2007)
soweit so gut...
die App ist getestet, und läuft stabil.
jetzt habe ich das Problem, dass ich nicht weiss, welche wordversion der User installiert hat und wie ich jetzt die interop für 2007 ins setup verpacke, damit es beim User installiert wird...
oder muss ich meine App umprogrammieren, damit sie mit allen (2002 - 2010) Versionen von Word funkt.
ich bin leider neu im Bereich Office-Programmierung und wäre für jeden Tipp dankbar
LG Roschi