myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » NetOffice - Ein versionsunabhängiger Wrapper für MS-Office
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Seiten (2): [1] 2 nächste » Antwort erstellen
Zum Ende der Seite springen  

NetOffice - Ein versionsunabhängiger Wrapper für MS-Office

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin


Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

NetOffice - Ein versionsunabhängiger Wrapper für MS-Office

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Fragen zur Entwicklung mit NetOffice z.B. wie sende ich eine E-Mail oder wie öffne ich ein Word Dokument bitte im Forum  Office-Technologien und nicht hier.


NetOffice - .NET Wrapper Assemblies für den Zugriff auf Microsoft Office, Excel, Word, Outlook, PowerPoint, Access

 http://netoffice.codeplex.com


- Office Integration ohne Versionsbeschränkung
- Alle Objekte, Methoden, Properties und Events der Office Versionen 2000, 2002, 2003, 2007, 2010 enthalten
- Attribute Konzept und XML Source Doku zur Information welche Office Version(en) die jeweilige Methode oder Property anbietet (siehe angehängtes Bild)
- Syntaktisch und semantisch identisch zu den Interop Assemblies
- Reduzierter und besser lesbarer Code durch automatische Verwaltung von COM Proxies
- Keine Deployment Hürden, keine problematische Registrierung, keine Abhängigkeiten, keine Interop Assemblies, kein VSTO notwendig
- Mit jeder .NET Version ab 2.0 verwendbar
- Problemlose Addin Entwicklung

- Dokumenation und Beispielprojekte inkl. Addins für alle Office Produkte in C# und VB.NET auch online verfügbar

Beispielcode für die Erstellung eines neuen TaskItem in Outlook(Example02.csproj)

C#-Code:
   // Initialize Api COMObject Support
   LateBindingApi.Core.Factory.Initialize();

   // Create an Outlook Application object.
   Outlook.Application outlookApplication = new Outlook.Application();

   // Create a new TaskItem.
   Outlook.TaskItem newTask = outlookApplication.CreateItem(OlItemType.olTaskItem) as Outlook.TaskItem;

   // Configure the task at hand and save it.
   newTask.Subject = "check for NetOffice.DeveloperToolbox updates";
   newTask.Body = "check updates here: http://netoffice.codeplex.com";
   newTask.DueDate = DateTime.Now;
   newTask.Importance = OlImportance.olImportanceHigh;

   newTask.Save();

   // close outlook and dispose
   outlookApplication.Quit();
   outlookApplication.Dispose();

Fragen, Kritik, Verbesserungsvorschläge und Bug Reports sind natürlich sehr willkommen.

Schlagwörter: Office Excel Word Outlook PowerPoint Access


Screenshot: IntelliSense Unterstützung in C# für Versionsinformation eines Property.

Sebastian.Lange hat dieses Bild angehängt:

IntelliSense.gif

Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von Sebastian.Lange am 04.11.2011 07:26.

26.05.2011 15:28 Beiträge des Benutzers | zu Buddylist hinzufügen
..Heinz..
myCSharp.de-Mitglied

Dabei seit: 06.05.2009
Beiträge: 134


..Heinz.. ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Sebastian,

habe NetOffice getestet und finde es super :-) Richtig schnell und im Vergleich zum normalen LateBinding einfach zu programmieren.

Was evtl. noch fehlt, ist eine Signierung der DLLs.
01.06.2011 08:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
xxxprod xxxprod ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2329.gif


Dabei seit: 13.04.2006
Beiträge: 1.352
Entwicklungsumgebung: Visual Studio 2010
Herkunft: Österreich\Wien


xxxprod ist offline Füge xxxprod Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Habs nicht probiert aber auf sowas habe ich schon lange gewartet!!! :)

Hoffe bald einmal das Framework einsetzen zu können.

Lg, XXX
01.06.2011 10:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Heinz

Die Signierung ist eine sinnvolle Option für eine Version 1.0 denke ich.
Momentan ist ja noch 0.8 Alpha(stable)

Sebastian
01.06.2011 21:15 Beiträge des Benutzers | zu Buddylist hinzufügen
Marsti Marsti ist männlich
myCSharp.de-Mitglied

Dabei seit: 02.05.2009
Beiträge: 120
Entwicklungsumgebung: Visual Studio


Marsti ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Klingt sehr gut. Gibt es auch die Möglichkeit beim Erstellen anzugeben, welche (minimale/exakte) Application-Version verwendet werden soll?

Also für den Fall, dass mehrere Installiert sind und man sich daher nicht sicher sein kann, dass gerade die gewünschte Version als Standardanwendung eingetragen ist.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Marsti am 03.06.2011 06:48.

03.06.2011 06:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
JunkyXL JunkyXL ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-3234.gif


Dabei seit: 02.05.2006
Beiträge: 1.664
Entwicklungsumgebung: Visual Studio 2010 Ultimate
Herkunft: Ein paar Bytes südlich von string


JunkyXL ist offline Füge JunkyXL Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Sehr gute Arbeit! Werde ich mir mal anschauen. Könnte das gut gebrauchen.
03.06.2011 13:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MagicAndre1981 MagicAndre1981 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-2623.jpg


Dabei seit: 16.05.2005
Beiträge: 906
Entwicklungsumgebung: Visual Studio 2005 Prof/ #d2.1
Herkunft: Nordhausen


MagicAndre1981 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

danke das schaue ich mir mal an.

Wie sieht es mit 32/64Bit (AnyCPU) Kompatibilität aus? Was muss man da alles beachten?
03.06.2011 18:44 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo MagicAndre,
Guter Punkt!
Ich erstelle gerade einen kleinen Guide bzw. kurze Übersicht zu dem Thema.
Release 0.9 (Beta) wird auch x64 Assemblies für alle .NET Versionen ab .NET 2.0 enthalten. Das Release erscheint in der Nacht vom 5. zum 6. Juni also spätestens kommenden Montag morgen ;) UPDATE: Seperate Assemblies für andere Plattformen sind nicht nötig. NetOffice funktioniert auch plattformunabhängig.


Hallo Marsti,
Ja, du kannst dem Application Objekt im Constructor die gewünschte ProgId übergeben und damit eine spezifische Version starten.


Sebastian


Edit: Das Release wird sich wohl verzögern da sich Office x64 prinzipiell nicht auf WindowsXP(x64) installieren lässt und ich kein anderes System zu Hause habe. Schade.

Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von Sebastian.Lange am 04.11.2011 07:30.

03.06.2011 21:01 Beiträge des Benutzers | zu Buddylist hinzufügen
MagicAndre1981 MagicAndre1981 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-2623.jpg


Dabei seit: 16.05.2005
Beiträge: 906
Entwicklungsumgebung: Visual Studio 2005 Prof/ #d2.1
Herkunft: Nordhausen


MagicAndre1981 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Sebastian.Lange:
Ich erstelle gerade einen kleinen Guide bzw. kurze Übersicht zu dem Thema.
Release 0.9 (Beta) wird auch x64 Assemblies für alle .NET Versionen ab .NET 2.0 enthalten.

Danke Daumen hoch
04.06.2011 00:03 Beiträge des Benutzers | zu Buddylist hinzufügen
..Heinz..
myCSharp.de-Mitglied

Dabei seit: 06.05.2009
Beiträge: 134


..Heinz.. ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Sebastian.Lange:
Die Signierung ist eine sinnvolle Option für eine Version 1.0 denke ich.

Das wäre super großes Grinsen Wäre schade, wenn man die DLL nicht in signierten Projekten einsetzen könnte, denn die Komponente ist super.
07.06.2011 08:01 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MagicAndre1981 MagicAndre1981 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-2623.jpg


Dabei seit: 16.05.2005
Beiträge: 906
Entwicklungsumgebung: Visual Studio 2005 Prof/ #d2.1
Herkunft: Nordhausen


MagicAndre1981 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ah, noch etwas. Wird es das Projekt auch als NuGet Paket geben?

@Sebastian.Lange

installiere die 90 Tage Win7 x64 Trial, da kannst du es testen.
07.06.2011 15:46 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe von NuGet bisher nur gelesen, ich muss mich erstmal informieren was ich dazu tun müsste. Wenns ohne Hürden umsetzbar ist, klar warum nicht.

EDIT 08.07.2011: Nein, auch Version 1.1 wird es nicht als NuGet-Paket geben.

Ich wusste nicht das Windows7 x64 als Trial erhältlich ist. Danke für den Tipp!
Ich bin mir sicher das neue Release diese Woche noch fertig zu bekommen.
07.06.2011 20:14 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe Release 0.9 soeben fertig gestellt und in der technischen Dokumentation einen entsprechnden Eintrag zur 32Bit/64Bit Thematik verfasst.

 Documentation > Tec_Documentation_German > Tec_Documentation_German_32Bit_64Bit

Sofern der Fragen offen lässt solls mir doch bitte einer sagen Augenzwinkern
09.06.2011 11:53 Beiträge des Benutzers | zu Buddylist hinzufügen
MagicAndre1981 MagicAndre1981 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-2623.jpg


Dabei seit: 16.05.2005
Beiträge: 906
Entwicklungsumgebung: Visual Studio 2005 Prof/ #d2.1
Herkunft: Nordhausen


MagicAndre1981 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ok, ich spiele nun etwas damit rum.

Eine Frage. Warum packst du die große RAR immer mit in die Quellcodeverwaltung?
09.06.2011 15:14 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du meinst das Release Tag?
Bei kleineren Bugfixes bzw. Anpassungen/Erweiterungen update ich das Tag ohne auf der Codeplex Seite jedesmal ein neues Release zu erstellen. Wenn du z.B. ein Issue erstellst kümmere ich mich sofort um den Fehler und update dieses Release Tag quasi noch am gleichen Tag. Das Release auf der Webseite muss immer etwas warten. 3 neue Releases am Tag würden keinem nützen glaube ich.
09.06.2011 16:27 Beiträge des Benutzers | zu Buddylist hinzufügen
MagicAndre1981 MagicAndre1981 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-2623.jpg


Dabei seit: 16.05.2005
Beiträge: 906
Entwicklungsumgebung: Visual Studio 2005 Prof/ #d2.1
Herkunft: Nordhausen


MagicAndre1981 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Sebastian.Lange:
Du meinst das Release Tag?

ja, ich will nur den trunk. Kannst du die Quellcodeverwaltung aufsplitten in trunk, tags, branches und dann wenn du eine Version fertig hast erstellst du einen Tag und keine RAR? SVN und große Dateien ist nicht wirklich schnell. TSVN kackt öfters mal ab und ich muss aufräumen und nochmals updaten.
10.06.2011 16:39 Beiträge des Benutzers | zu Buddylist hinzufügen
ManiacViper ManiacViper ist männlich
myCSharp.de-Mitglied

Dabei seit: 09.02.2006
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2005 Std.
Herkunft: Dresden


ManiacViper ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

lassen mit NetOffice auch die Office-Anwendungen in die eigene Applikation einbetten?

Ich muss für ein aktuelles Projekt Excel-Dateien innerhalb meiner Anwendung anzeigen. Bisher habe ich es mit einem WebBrowser-Control versucht. Dies funktioniert jedoch ohne Änderung an der Registry nicht richtig.

Daniel
14.06.2011 09:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
tom-essen tom-essen ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2140.png


Dabei seit: 15.05.2005
Beiträge: 1.794
Entwicklungsumgebung: VS.NET 2005 & 2008
Herkunft: NRW


tom-essen ist offline Füge tom-essen Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo!

@ManiacViper:
Der Wrapper ist lediglich als background-Worker gedacht, d.h. Office-Dokumente erstellen und bearbeiten. Für die Anzeige musst du leider andere Wege gehen.
14.06.2011 10:10 Beiträge des Benutzers | zu Buddylist hinzufügen
Spontifixus Spontifixus ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-3052.gif


Dabei seit: 06.09.2005
Beiträge: 360
Entwicklungsumgebung: VisualStudio 2008/2010
Herkunft: Hannover


Spontifixus ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Sebastian,

coole API - ich brauche sie gerade wieder für ein kleines Projekt. Vielen Dank dafür!

Und (wie könnte es anders sein) dazu gleich eine Frage. Ich muss mit meinem Programm große Datenmengen (>50.000 Zeilen, 6 Spalten) in Excel importieren. Wenn ich die händisch (Zelle für Zelle) hinzufüge dauert das ewig.
Gibt es eine Möglichkeit das zu beschleunigen, beispielsweise über einen CSV-Import?

EDIT: Da habe ich wohl nicht klar genug formuliert. Die Frage bezieht sich ganz konkret auf die netoffice-API: Ist ein CSV-Import mit dieser API möglich? Und wenn ja, wie?

Viele Grüße,
Markus :)


mycsharp.de  Moderationshinweis von herbivore (27.06.2011 16:53):

Bitte die Frage nur in direktem Bezug zu "NetOffice - Ein versionsunabhängiger Wrapper für MS-Office" beantworten, denn wir sind hier in ".NET-Komponenten und C#-Snippets" und nicht in "Entwicklung".
 

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Spontifixus am 27.06.2011 17:43.

27.06.2011 16:18 Beiträge des Benutzers | zu Buddylist hinzufügen
mrbob mrbob ist männlich
myCSharp.de-Mitglied

Dabei seit: 26.11.2010
Beiträge: 46


mrbob ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Moin moin,

die API hört sich Interessant an. Leider bin ich noch nicht dazugekommen sie mal zu testen.
Aber eine Frage habe ich schon. Muss auf dem Zielrechner des Anwenders Office installiert sein?

Mfg.
Mr. Bob
29.06.2011 16:28 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Taipi88 Taipi88 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-3220.jpg


Dabei seit: 02.02.2010
Beiträge: 271
Entwicklungsumgebung: VS 2010
Herkunft: Mainz


Taipi88 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
ja - Office muss installiert sein - die API ist "nur" eine LateBinding-Wrapper um
die OfficeAPI - Vorteil: Es muss keine bestimmte Office-Version installiert sein.

Es handelt sich dabei nicht um eine vollständig neue Implementierung der OfficeAPI großes Grinsen

LG
Achim
30.06.2011 07:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Heinz,

NetOffice Release 1.0 mit signierten Assemblies ist jetzt online. Siehe erster Beitrag.
08.07.2011 10:21 Beiträge des Benutzers | zu Buddylist hinzufügen
..Heinz..
myCSharp.de-Mitglied

Dabei seit: 06.05.2009
Beiträge: 134


..Heinz.. ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Habs getestet. Wunderbar :-)
13.07.2011 08:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
tom-essen tom-essen ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2140.png


Dabei seit: 15.05.2005
Beiträge: 1.794
Entwicklungsumgebung: VS.NET 2005 & 2008
Herkunft: NRW


tom-essen ist offline Füge tom-essen Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo!

@Spontifixus:
Da müsstest du mal prüfen, ob das mit der Open-Funktion möglich ist, oder ob es dafür eine spezielle Import-Funktion gibt.
13.07.2011 08:44 Beiträge des Benutzers | zu Buddylist hinzufügen
ChrDressler ChrDressler ist männlich
myCSharp.de-Mitglied

Dabei seit: 23.05.2006
Beiträge: 171
Entwicklungsumgebung: VS2008 Pro, VS 2010
Herkunft: Sachsen


ChrDressler ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Genial!
Ich habe zwar nur Excel getestet, muss aber sagen: Hut ab! Auch allem wg. der vielen Arbeit, die ganzen Properties nachzubauen und alles so fein zu dokumentieren und zu "bebeispielen".

Nur zur Info: Ich habe bisher versucht:
- direktes COM: ist an Unterschieden zwischen den Excelversionen gescheitert
- Xml-Writer von  CarlosAg: ein recht gutes Teil, wenn man nur schreiben will, läuft voll ohne Excel. Ich aber muss in bestehende Blätter schreiben, und da gibts Schwierigkeiten mit der Zelladressierung.
- Ado.Net: immer wieder Fehler "Installierbares Isam nicht gefunden" auf diversen Maschinen in freier Wildbahn.

-christoph
13.07.2011 21:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dankeschön, NetOffice ist allerdings nicht von Hand gemacht sondern mit einem Codegenerator erstellt den ich dafür entwickelt habe, den gibt es auch auf Codeplex.

Nochwas: Eine italienische IT-Firma ist an mich heran getreten ob es möglich ist MS-Project zu integrieren. Dankenswerte Weise wurden mir die beiden verfügbaren MS-Project Versionen(2007 und 2010) dafür zur Verfügung gestellt. In den nächsten Tagen werde ich das umsetzen jedoch fehlt mir jede Kentniss über das Produkt. Wenn jemand Lust hat sich dem NetOffice Team anzuschliessen und ein wenig Beispielcode dafür zur schreiben zu stellen wäre das toll. Eine Liste welche OpenSource Projekte inzwischen von Interop und VSTO auf NetOffice umgestellt haben veröffentliche ich demnächst.
14.07.2011 00:54 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Es gibt ein neues Release

 NetOffice Release 1.1

Es behebt einen kritischen Fehler im Eventsystem von NetOffice.
Sie dazu  Issue 16314

Der Support für MS-Project verzögert sich leider etwas da die Italiener ausgesprochen träge reagieren was die Tests betrifft.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sebastian.Lange am 31.07.2011 17:40.

30.07.2011 22:29 Beiträge des Benutzers | zu Buddylist hinzufügen
Spontifixus Spontifixus ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-3052.gif


Dabei seit: 06.09.2005
Beiträge: 360
Entwicklungsumgebung: VisualStudio 2008/2010
Herkunft: Hannover


Spontifixus ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Sebastian,

danke für den Hinweis, ich hab das wie von dir vorgeschlagen über Copy'n'Paste (CSV-Daten in die Zwischenablage kopieren und dann in den entsprechenden Bereich kopieren) gelöst. Das funktioniert extrem schnell.

Viele Grüße,
Markus :)
08.08.2011 17:07 Beiträge des Benutzers | zu Buddylist hinzufügen
seeba seeba ist männlich
myCSharp.de-Mitglied

Dabei seit: 25.12.2005
Beiträge: 70
Entwicklungsumgebung: Visual Studio 2010 Ultimate


seeba ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Sebastian,
super Arbeit!
Kann man das "Speichern als PDF" auch über deinen Wrapper ausführen?

Grüße
ebenfalls Sebastian

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von seeba am 10.08.2011 14:02.

10.08.2011 14:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Taipi88 Taipi88 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-3220.jpg


Dabei seit: 02.02.2010
Beiträge: 271
Entwicklungsumgebung: VS 2010
Herkunft: Mainz


Taipi88 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

diese Antwort übernehme ich dann einfach mal :P

NetOffice ist ein Wrapper - wenn etwas über das Objektmodell geht, dann kann es meines Wissens nach auch NetOffice.

Der einfachste Weg ist finde ich den "Makro-Recorder" anzuwerfen, die gewünschte Aktion durchzuführen und sich danach den VBA-Code anschauen,
wie ich es nachfolgend getan habe.

Der aufgenommene VBA-Code sieht so aus:

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
Sub ExportActiveDocAsPdf()
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "Dateiname.pdf", ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
        wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
        wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
        True, UseISO19005_1:=False
End Sub

Daraus macht man dann in C# beispielsweise folgendes:

C#-Code:
            // export the newly created document as a pdf
            newDocument.ExportAsFixedFormat(@"Dateipfad.pdf", WdExportFormat.wdExportFormatPDF,
                false, WdExportOptimizeFor.wdExportOptimizeForPrint, WdExportRange.wdExportAllDocument, 1, 1,
                WdExportItem.wdExportDocumentContent, true, true, WdExportCreateBookmarks.wdExportCreateNoBookmarks, true, true, false);

Eine lauffähige Version könnte dann so aussehen:

C#-Code:
using NetOffice.WordApi.Enums;
using Word = NetOffice.WordApi;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize Api COMObject Support
            LateBindingApi.Core.Factory.Initialize();

            // start word and turn off msg boxes
            Word.Application wordApplication = new Word.Application();
            wordApplication.DisplayAlerts = WdAlertLevel.wdAlertsNone;

            // add a new document
            Word.Document newDocument = wordApplication.Documents.Add();

            // insert some text
            wordApplication.Selection.TypeText("This text is written by NetOffice");

            // export the newly created document as a pdf
            newDocument.ExportAsFixedFormat(@"Dateipfad.pdf", WdExportFormat.wdExportFormatPDF,
                false, WdExportOptimizeFor.wdExportOptimizeForPrint, WdExportRange.wdExportAllDocument, 1, 1,
                WdExportItem.wdExportDocumentContent, true, true, WdExportCreateBookmarks.wdExportCreateNoBookmarks, true, true, false);

            // close document unsaved
            newDocument.Close(false, null, null);

            // exit word
            wordApplication.Quit();
            wordApplication.Dispose();
        }
    }
}

LG
Achim

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Taipi88 am 10.08.2011 14:24.

10.08.2011 14:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
seeba seeba ist männlich
myCSharp.de-Mitglied

Dabei seit: 25.12.2005
Beiträge: 70
Entwicklungsumgebung: Visual Studio 2010 Ultimate


seeba ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Super, vielen Dank. Ich probier' das dann mal! :-)
10.08.2011 14:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
..Heinz..
myCSharp.de-Mitglied

Dabei seit: 06.05.2009
Beiträge: 134


..Heinz.. ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Sebastian,

wie sieht es mit Nuget aus? Ist da etwas geplant? großes Grinsen
18.08.2011 11:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

NetOffice Release 1.2

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ab sofort verfügbar ist:

 NetOffice Release 1.2

- IntelliSense zeigt nun zusätzlich für Properties "Get" oder "Get/Set"
- Unterstützung für MS-Project 2007 und 2010
- Deutliche Performance Verbesserung

Ein ausführlicher Performance Vergleich ist nun zusätzlich verfügbar:

 Performance Vergleich: Interop, Dynamics, Visual Basic, NetOffice


Geplant für Release 1.3
- Unterstützung für ältere MS-Project Versionen
- Unterstützung für MS-Visio (wurde angefragt)
- Weitere Vorschläge durch Community Feedback willkommen

[offtopic]
Die fetten ReleaseTags im Quellcode habe ich entfernt.
[/offtopic]

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sebastian.Lange am 22.08.2011 17:39.

21.08.2011 23:07 Beiträge des Benutzers | zu Buddylist hinzufügen
MagicAndre1981 MagicAndre1981 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-2623.jpg


Dabei seit: 16.05.2005
Beiträge: 906
Entwicklungsumgebung: Visual Studio 2005 Prof/ #d2.1
Herkunft: Nordhausen


MagicAndre1981 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

danke, nun noch ein NuGet Package und ich bin glücklich. NuGet ist das beste was ist seit langen bei .Net gibt. Aktuell muss man sich deine Version laden, sie in seinem eigenen Projekt in einem Ordner einfügen sowie in die Versionskontrolle packen. Mit NuGet kann man sich das alles sparen.
22.08.2011 13:38 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

[offtopic]
Hallo,
Ich erkenne den sinvollen Grundgedanken von Nuget und bei den häufigen NetOffice Releases der letzten Zeit wäre das sicher sehr nützlich gewesen. Jedoch habe ich mich nach gründlichem Überlegen dazu entschlossen vorläufig kein Nuget Packet anzubieten da ich mit einigen Aspekten der technischen Umsetzung nicht einverstanden bin. Ich würde das Thema gerne in in einem extra Thread weiter diskutieren sofern du magst.
[/offtopic]

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sebastian.Lange am 22.08.2011 20:49.

22.08.2011 20:49 Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
Diräkt Diräkt ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.11.2009
Beiträge: 562
Entwicklungsumgebung: VS 2010
Herkunft: Schweiz


Diräkt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

[noch mehr offtopic]

Hallo :)

Ich möchte einfach mal DANKE sagen ! Gute Arbeit ! :)


Beste Grüsse

Diräkt

[/noch mehr offtopic]
12.10.2011 22:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ab sofort verfügbar ist die NetOffice Developer Toolbox.

Die Developer Toolbox ist ein Productivity Tool für den Office-Entwickler.
Es umfasst die folgenden Funktionalitäten:

- Office Compatibility
- Application Observer
- Registry Editor
- Addin Guard
- Outlook Security


Die Dokumenation befindet sich hier:
 Developer Toolbox Online Dokumenation

Ich möchte die einzelnen Funktionen ganz kurz umschreiben.

Office Compatibility

Wer eine Office Lösung entwickelt die mit mehreren oder allen Office Versionen kompatibel sein muss, steht vor dem Problem das er nur die Funktionalitäten ansprechen darf die in allen unterstützen Versionen zur Verfügung stehen. NetOffice bietet daher als einzige API einen entsprechenden Hinweis als IntelliSense Text, während der Entwicklung an, von welcher Office Version die jeweilige Funktionalität unterstützt wird. Auch wenn dieses Feature eine grosse Hilfe darstellt, reicht es in der Praxis nicht aus um sicherzustellen das man mit allen Versionen einer Office Anwendung kompatibel ist. Die Office Compatibility Komponente führt eine statische Code-Analyse mit Hilfe von Mono.Cecil durch und analysiert Assemblies die NetOffice verwenden darauf mit welchen Office Versionen sie kompatibel sind. Eine entsprechende Übersicht hilft dem Entwickler die inkompatiblen Aufrufe zu identifizieren.

Application Observer

Wer über längere Zeit an grösseren Office Lösungen arbeitet kennt das Problem.
Ein Fehler triff auf, der Debugging Prozess wird abgebrochen, vorhandener Cleanup Code wird damit nicht ausgeführt. Die Instanz der Office Anwendung wird nicht beendet und verbleibt im Speicher. Schnell befinden sich innerhalb weniger Minuten viele dieser verwaisten Instanzen im Speicher die via Task-Manager entfernt werden müssen. Der Application Observer überwacht die Anzahl laufender Instanzen von ausgewählten Office Anwendungen und zeigt diese Information auf Wunsch als Tray-Icon an. Darüber hinaus kann man einen systemweiten Hotkey festlegen um diese Instanzen schnell und unkompliziert zu entfernen. Die Hotkey Klasse stammt dabei von MyCSharp. Vielen Dank an Floste. Einen entsprechenden Hinweis im Code und in der About Box habe ich natürlich nicht vergessen.

Registry Editor

Der Registry Editor ist ein technischer und optischer Klon des bekannten Windows Registry Editors. Er bietet jedoch nur die Schlüssel für MS-Office an. Nerviges scrollen wird dadurch überflüssig.

Addin Guard

Entwickler die COMAddins für eine Office Anwendung schreiben haben oft das Problem das Sie nicht sicher sind ob Ihr Addin ordnungsgemäss geladen wird.
Bei einem auftretenden Fehler, z.B. einer fehlenden Abhängigkeit setzen Office Anwendungen das Ladeverhalten von Addins komentarlos zurück oder markieren es als deaktiviert. Viele Entwickler bauen daher MessageBox Ausgaben in ihren Code und prüfen permanent mit nervösem Blick die Registry-Werte Ihres Addins.
Addin Guard schafft hier Abhilfe in dem es das Ladeverhalten von Addins also ihren Aktivierungsstatus überwacht und ein Meldungsfenster oder eine Tray-Benachrichtung anzeigt wenn sich das Ladeverhalten ändert. Auf Wunsch kann Addin Guard das Ladeverhalten auch direkt zurücksetzen.

Outlook Security

Ein Entwickler der MS-Outlook via COM ansprechen bzw. automatisieren möchte steht vor dem Problem das Outlook einen Security Dialog einblendet, der zur Autoriserung auffordert, wenn man auf bestimmte Teile des Objektmodells zugreift. Mit Einführung dieses Sicherheits-Features wurde sehr schnell ein Tool mit dem Namen ClickYes populär das im Hintergrund läuft und diesen Dialog automatisch bestätigt. Outlook Security tut es dem bekannten Tool ClickYes nach indem es diesen Dialog automatisch bestätigt und hat darüber hinaus noch einen weiteren Vorteil. Die tatsächliche Funktionalität ist in das beiliegende Assembly NetOffice.OutlookSecurity.dll ausgelagert. Wer möchte kann dieses Assembly nutzen oder den Source Code direkt einbinden. Ein Addin kann damit seine eigene ClickYes Funktionalität mitbringen und auf dem Zielsystem muss kein extra Tool installiert werden. Wie man das Assembly NetOffice.OutlookSecurity.dll nutzt ist in der Online Dokumentation beschrieben.

 Zum Download gehts hier

Die Developer Toolbox benötigt das .NET 4 Framework.
Das Client Profile ist dabei ausreichend.

Sebastian.Lange hat dieses Bild (verkleinerte Version) angehängt:
ToolboxThumb.png
Volle Bildgröße

Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von Sebastian.Lange am 24.10.2011 06:38.

24.10.2011 01:18 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Für die Toolbox gibt es ein Update(Version 0.8.2) das 2 Bugs in der Office Compatibility Komponente behebt. Der 1.Bug verursachte eine Fehlermeldung während der Assembly Analyse, der 2. Bug verursachte eine falsche Anzeige im Filter-Modus des anschliessenden Reports.

Edit: Gleich noch ein Update(Version 0.8.3) hinterher.
Die Office Compatibility Komponente hat jetzt 73 Test Assemblies erfolgreich passiert. In Version 0.9 wird der detailierte Report der Analyse übersichtlicher und ansprechender aussehen und darüber hinaus auch direkt speicherbar sein

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sebastian.Lange am 04.11.2011 07:23.

02.11.2011 11:10 Beiträge des Benutzers | zu Buddylist hinzufügen
tom-essen tom-essen ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2140.png


Dabei seit: 15.05.2005
Beiträge: 1.794
Entwicklungsumgebung: VS.NET 2005 & 2008
Herkunft: NRW


tom-essen ist offline Füge tom-essen Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo!

Habe NetOffice heute auch mal getestet: Läuft wirklich toll.

Evtl. noch ein kleiner Hinweis:
Wenn man z.B. Application in einer using-Anweisung verwendet, erwarte ich, dass neben Dispose gegebenenfalls weitere Methoden (z.B. Quit) automatisch aufgerufen werden.

Zusätzlich sollte evtl. auch ein Destructor eingerichtet werden (siehe auch  Dispose implementieren und verwenden (IDisposable)), welcher Dispose(false) aufruft.

Ich benutze zwar z.Zt. noch einen eigenen Wrapper, bin aber geneigt, auf NetOffice umzusteigen.
09.11.2011 11:11 Beiträge des Benutzers | zu Buddylist hinzufügen
Sebastian.Lange Sebastian.Lange ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 22.06.2007
Beiträge: 1.035
Entwicklungsumgebung: Visual Studio 2008, 2010
Herkunft: Berlin

Themenstarter Thema begonnen von Sebastian.Lange

Sebastian.Lange ist offline MSN-Passport-Profil von Sebastian.Lange anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für deinen Hinweis. Quit() für Applications am Ende eines using Blocks aufzurufen ist eine sinnvolle Sache aber eben auch nur in diesem Context.
Ansonsten darf Quit() nie automatisch aufgerufen werden auch nicht wenn das Objekt vom GC entsorgt wird. Oft genug will man das die Anwendung weiterlebt auch wenn man sich technisch von ihr getrennt hat.

Ich muss erstmal intensiv drüber grübeln.
Das Proxy Management ist eine BasisApi (LateBindingApi.Core) verpackt.
Diese weiss natürlich nichts über irgendwelche Quit Methoden und soll es auch nicht. Möglich wäre es allerdings trotzem, wenn ich den Application Objekten ein zusätzliches Interface(IQuit o.ä.) spendiere. Ich werde nach dem Ende meiner Überlegungen meinen Entwurf hier kurz vorstellen.

In eigener Sache:
Die Developer Toolbox in der Version 0.8.6 ist online mit einer technisch und optischer verbesserten Office Compatibility Komponente.
09.11.2011 14:05 Beiträge des Benutzers | zu Buddylist hinzufügen
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 3 Jahre.
Der letzte Beitrag ist älter als 10 Monate.
Antwort erstellen


© Copyright 2003-2014 myCSharp.de-Team. Alle Rechte vorbehalten. 01.08.2014 11:48