Excelfiles einfach generieren mit Flexcel

Gregor Ottmann | April 10, 2008 on 7:46 am | In .Net, ASP.NET, Tools | 2 Comments

Eine Warnung vorweg: Die nachfolgende Toolempfehlung kostet Geld. Im Grunde ist das Teil zwar spottbillig, aber wenn man aus Prinzip nix benutzen mag, für das man seine $$$ auf den Tisch werfen muss, sollte man jetzt eine andere News lesen.

Also. Wir mussten neulich für einen Kunden Excel-Files erzeugen, und zwar total komplizierte. Das Ganze durfte natürlich keine Excel-Installation auf dem Server voraussetzen, und CSV war definitiv keine Option, logo. Ein Fluch bildete sich schon auf unseren Lippen, als Paul ein Toolkit fand, das sich zur Rettung unserer Hinterteile in letzter Sekunde eignete: TMS Flexcel Studio for .Net.

Dieses Flexcel-Dings kann nicht nur beliebige Excel-Dateien einlesen, die darin enthaltenen Formeln berechnen, die Inhalte beliebig verändern und dann wieder eine Excel-Datei ausspucken. Nein, das wäre ja noch harmlos. Es enthält auch eine Reporting-Engine und kann Excel-Files als PDF oder HTML rendern, wobei Excel-Charts als PNG ausgegeben werden. Besonders geil ist das beiligende Tool, das eine beliebige Excel-Datei einlesen und daraus den Sourcecode in C#, VB oder Delphi generieren kann, den man bräuchte, um die Quelldatei programmatisch zu erzeugen… Das muss man echt mal gesehen haben.

Ach ja: Der Sourcecode der gesamten Komponente inklusive PDF-Library liegt bei, wenn man das Tool für sagenhaft günstige 125 EUR pro Entwickler kauft. Für 495 EUR gibt’s eine “Site Licence”, die dann von beliebig vielen Entwicklern einer Firma benutzt werden darf - da kann man nicht meckern. Insbesondere dann nicht, wenn man sich überlegt, wieviel eine Excel-Lizenz für den Server kosten würde. Oder die Eigenentwicklung so einer Killerkomponente.

Und nein, ich bin nicht zum reinen Microsoftie verkommen. Ich arbeite halt momentan mehr oder weniger ausschließlich mit dem Zeugs, hoffe aber darauf, irgendwann mal wieder was mit Java machen zu dürfen - und dann kriegt Ihr auch wieder Blogposts, die sich nicht um den MS-Krempel drehen.

Configgerationiere Deine web.config mit ASPHere!

Gregor Ottmann | Februar 13, 2008 on 9:01 am | In ASP.NET, Tools | No Comments

Diese Deskriptoren machen mich ganz deskriptiv, egal für welche Technologie. Wenn ich eine web.xml basteln muss, werde ich ganz kribbelig und glaubt mir - bei einer web.config für ASP.NET ist das kein Stück besser. Können diese blöden Websites nicht einfach genau das tun, was ich mir so denke, statt von mir zu verlangen, dass ich es vernünftig aufschreibe? Ist das etwa zuviel verlangt? Scheinbar schon.

Dank PRogalinski ist der Schmerz zumindest bei der ASP-Konfickelei jetzt aber etwas weniger schlimm, denn er hat mir das web.config-Editiertooldings “ASPHere” gezeigt, von dem ich ziemlich begeistert bin. OK, ich habe es nur mal kurz ausprobiert, aber meine vorhandenen Dateien konnte es einlesen und bearbeiten, ohne Fehler zu spucken - das ist ein gutes Zeichen.

ASPHere

Besonders fein finde ich bei dem Tool noch nicht mal unbedingt, dass man visuell configgen kann, sondern dass man eine übersichtliche Liste der möglichen Optionen nebst Hilfestexten, Tooltips und Links zu MSDN hat. Meistens ist es schließlich gar nicht so arg schwer, den Kram hinzuschreiben - nur weiß man halt von den meisten Optionen gar nicht, dass es sie überhaupt gibt, und da hilft so ein Optionsbrowser doch enorm. Wer sich mit ASP rumschlagen muss, sollte jedenfalls mal einen Blick auf das Dings werfen.

Von Typen mit Strings und assemblierter Sicherheit

Gregor Ottmann | Februar 10, 2008 on 7:40 pm | In .Net, ASP.NET, Know-How | No Comments
Picture it: Sicily, 1922. A beautiful young girl meets an american guy who wants to make every single developer in the world throw up continuously. The girl was me and the guy was Bill Gates…

So oder ähnlich denkt man, wenn man a) zuviele Folgen der Golden Girls gesehen hat und b) gerade mit .NET arbeitet. Zumindest dann, wenn man gerade folgende Situation hatte:

  • Ein WebPart enthält einen GridView mit einer ObjectDataSource, die auf ein eigenes DAL verweist
  • Das Part funktioniert in ASP-Seiten
  • Das Part funktioniert im Sharepoint mit voller Pulle Trustlevel
  • Das Part fliegt mit einem Hinweis, dass die DAL-Klasse nicht gefunden wurde, auseinander, wenn man es im GAC installiert.

Des Rätsels Lösung war ganz einfach, wenn man nur weiß, wo man suchen muss. Wir hatten diesen Code (den ich aus einem Tutorial kopiert hatte) im Part:

ObjectDataSource ods = new ObjectDataSource();
ods.EnablePaging = true;
ods.SelectMethod = “getItems”;
ods.SelectCountMethod = “GetTotalItemCount”;
ods.SortParameterName = “sortExpression”;
ods.TypeName = typeof(AreDal).ToString();

Die letzte Zeile musste wie folgt geändert werden, damit das Mistding vernünftige Klassennamen mit Assembly-Namen und Public-Key-Dingsbums ausspuckt:

ods.TypeName = typeof(AreDal).AssemblyQualifiedName;

NA DANN! Wieso ist das ToString bei dem Mist eigentlich nicht gleich so implementiert, dass es ordentlich funktioniert? Kann mir das irgendwer verraten? Nein? Naja, auch egal, ich hab’s ja jetzt.

ASP.Net, ein Custom Control, eine DataTable und ein GridView - Sortieren für Masochisten

Gregor Ottmann | November 23, 2007 on 1:38 pm | In .Net, ASP.NET, Know-How | No Comments

Der Tag hatte so schön angefangen: Es war mir gelungen, ein paar Web Parts zu stricken, die im Zusammenspiel ein originelles Anmeldeschema, das vom Kunden vorgegeben wurde, korrekt umsetzten. Ich hatte einen WCF-Webservice korrekt angebunden und rausgefunden, wie man alle Ausgaben elegant lokalisiert. Die sprichwörtliche Sonne war damit beschäftigt, mir aus dem ebenso sprichwörtlichen wie dicken Arsch zu scheinen.

Der Moment, an dem es mit diesem schönen Freitag massiv bergab ging war der, in dem ich ein Custom Control bauen wollte, welches in einem Web Part eingebunden werden sollte und in dem eine Tabelle mit Werten angezeigt werden sollte - ein GridView, wie wir Möchtergern-Experten es gerne nennen. Weil die Applikation ja sauber aufgebaut ist, konnte das seine Daten nicht direkt aus einer SQLDataSource holen sondern aus einer selbstgebauten DataTable. Das ging sogar, doch beim Klick auf einen der Sortierlinks in der Titelzeile flog alles auseinander. Zwei Stunden später wusste ich immer noch nicht, wieso der Kram nicht sortieren wollte und der Tag war dort, wo vorher die immer noch ziemlich sprichwörtliche Sonne herauszuscheinen beliebte.

Weitere zwei Stunden später ging die Sonne wieder auf, denn ich hatte ein sehr hilfreiches Forenposting über GridView, DataTable und die verdammte Sortierfunktion gefunden. Ein wenig kopierter Code, und schon konnte ich sortieren. Aufsteigend. Andersrum nicht, wieso auch immer.

Also tat ich, was ich gleich hätte tun sollen, und las besagtes Posting etwas weiter, nämlich bis zu dem Punkt, wo andere mein Problem hatten und der ursprüngliche Auto sich erbarmte, nochmal nachzuarbeiten - das Ergebnis dieser Nacharbeit findet man auf dieser Seite hier, allerdings rafft man es nicht, ohne das Posting gelesen zu haben. Macht nix, zur Not reicht kopieren ohne Peilung auch aus - solange das GridView nur sortiert.

Fazit 1: Du sollst das Control nicht vor dem GridView loben.

Fazit 2: DataTables lassen sich nicht ohne fremde Hilfe sortieren.

Fazit 3: Ich gehe jetzt heim, bevor ich noch auf die Idee komme, meinen Fileupload zu testen…

Ein Tag aus dem Leben einer ASP-Seite

Gregor Ottmann | September 27, 2007 on 10:52 am | In .Net, ASP.NET, Know-How | No Comments

Mensch, da habe ich es so lange geschafft, mich vor Microsofts Webtechnologien zu drücken, und was passiert mir in diesen Tagen und Wochen? Alle Kunden verlangen auf einmal nach Sharepoint, ich darf mich in den ganzen Kram einarbeiten und stelle plötzlich entsetzt fest, dass ich das Zeug teilweise gar nicht so uncool finde. Ich gebe zu, mich irgendwie schmutzig zu fühlen - aber auf eine Art, die durchaus Sex-Appeal hat. Ich spare mir im Sinne der USK-Einstufung für diese Website detaillierte Vergleiche, die genauer beschreiben würde, wie ich das meine.

Gerade als Umsteiger aus der Java-Welt habe ich allerdings ein paar Stolpersteine gefunden, die nicht ganz ohne sind. Der grundlegendste dieser Steine war wohl die Sache mit dem Lifecycle der ASP-Seiten - ich dachte ganz arrogant, dass ich das als erfahrener J2EE-Anwender schon intutiv raffen würde, und das war ein Irrtum. Irgendwie wurde aber schnell alles klarer, als ich die kurze Einführung in den Lebenszyklus einer ASP-Seite durchgelesen habe, die mir MHenze freundlicherweise empfohlen hat. Wer hätte gedacht, dass in so wenig Text so viel Lebensrettungspotenzial stecken könnte?

Entries and comments feeds. Valid XHTML and CSS. ^Top^

xml :RSS2-Feed