über mich
mein motto
kontakte mich (())

Visual C# 2008 - Das Videotraining von Lars Keller

followme

Get your 'feeds' on Follow me on Twitter Currently no podcasts available

recentcomments

Comment RSS

community

VSTO Taskforce Just Community .NET Developer Group Braunschweig

VSTO 4: SparkLines per Code erstellen

10. Juni 2010 | Geändert: 11. Juni 2010 | MS Office | msdn | MVP | VSTO 0

Mit dem neuen Excel 2010 wurden die SparkLines eingeführt, welche sich mit der neuen VSTO 4 Version programmieren lassen.

Was ist ein SparkLine und wie sieht dieses aus?

 SparkLines sind kleine Diagramme, die in einer einzelnen Excelzelle abgebildet werden.

SparkLines SparkColumnStacked100

 

 

 

 

 

Das Diagramm ist in der Spalte D zu erkennen und ist als SparkColumnStacked100 dargestellt.

sparkline_menu

SparkLines können ganz einfach über das entsprechende SparkLine-Tab optisch angepasst werden.


Doch wie erstelle ich diese per Code?

Das ist relativ einfach. Alles was dafür benötigt wird, ist ein Range-Objekt. Ein Range-Objekt ist ein definierter Bereich, welcher aus Zellen besteht. Es ist dabei egal, ob es aus mehreren Zellen oder nur aus einer Zelle besteht.

 Range sparklineRange = sheet.get_Range("D1");
SparklineGroup sparkline = sparklineRange.SparklineGroups.Add(XlSparkType.xlSparkColumnStacked100, "A1:C1");

Nachdem das Range-Objekt definiert wurde, wird diesem eine SparkLineGroups hinzugefügt. Eine SparkLine benötigt die Darstellungsart und die Datenquelle, aus welcher das Diagramm generiert werden soll. Die Darstellungsart kann aus drei verschiedenen Diagrammarten (Linien-, Säulen- oder Gewinn/Verlust-Diagramm) gewählt werden.

 sparkline.SeriesColor.ThemeColor = XlThemeColor.xlThemeColorAccent3;
sparkline.Points.Highpoint.Visible = true;
sparkline.Points.Firstpoint.Visible = true;
sparkline.Points.Negative.Visible = true;

 

Das SparkLine kann auch bspw. in der Graphenfarbe verändert werden. Alles was dafür getan werden muss, ist eine der entsprechenden XlThemeColor-Werte auszuwählen. Als ein weiteres optisches Detail kann festgelegt werden, dass die negativsten, ersten, letzten, etc. Werte eines SparkLines farblich gekennzeichnet werden.

So einfach lassen sich die SparkLines mit VSTO 4 programmieren. Zum Schluss ist hier ein komplettes lauffähiges Beispiel:

using System;
using Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
namespace ExcelWorkbook1
{
    public partial class Tabelle1    
    {
        private void Tabelle1_Startup(object sender, EventArgs e)
        {
            Worksheet sheet = Globals.ThisWorkbook.ActiveSheet as Worksheet;
            SetRow(sheet, 1, 1, 4, 6);
            SetRow(sheet, 2, 4, 1, 9);
            SetRow(sheet, 3, 1, -5, 3);
            Range sparklineRange = sheet.get_Range("D1");
            SparklineGroup sparkline = sparklineRange.SparklineGroups.Add(XlSparkType.xlSparkColumnStacked100, "A1:C1");
            sparkline.SeriesColor.ThemeColor = XlThemeColor.xlThemeColorAccent3;
            sparkline.Points.Highpoint.Visible = true;
            sparkline.Points.Firstpoint.Visible = true;
            sparkline.Points.Negative.Visible = true;
            sparklineRange.Copy(sheet.get_Range("D2:D3"));
        }

        private void Tabelle1_Shutdown(object sender, EventArgs e)
        {
        }

        private void SetRow(Worksheet sheet, int row, params int[] values)
        {
            for (int x = 0; x < values.Length; x++)
            {
                sheet.Cells[row, x + 1] = values[x];
            }
        }   
        #region VSTO Designer generated code
        ///  
        ///  Required method for Designer support - do not modify
        ///  the contents of this method with the code editor.  
        ///  
        private void InternalStartup()
        {
            Startup += Tabelle1_Startup;  
            Shutdown += Tabelle1_Shutdown;
        }       
        #endregion   
    }
 }

VSTO 4: Wie erweitere ich den Backstage für Outlook 2010

27. Mai 2010 | Geändert: 12. Juni 2010 | MS Office | msdn | MVP | VSTO 0

Mit Einführung von MS Office 2010 gibt es einige Neuerungen in der VSTO Entwicklung. Ich möchte in diesem Post zeigen, wie einfach der neue Backstage Bereich in Outlook 2010 angepasst werden kann.

Was ist überhaupt der “Backstage Bereich”?

Backstage Bereich in Outlook 2010

Der Backstage Bereich wurde in allen Office Applikationen eingeführt. In diesem hat der Entwickler die Möglichkeit, Konfigurationsdaten zu visualisieren und/oder zur Bearbeitung zur Verfügung zu stellen.

Ich habe vor kurzem ein VSTO 4 Add-In geschrieben, in dem ich den Backstage genau dafür eingesetzt habe. Ich benötige für mein Add-In Benutzerdaten damit sich der Benutzer mit einer Telefonanlage verbinden kann. Früher hätte ich dafür einen Dialog mit der gesamten Verwaltung erstellt. Dabei musste ich immer schauen, wie integrieren ich diesen Dialog in Outlook, so dass der Benutzer diesen auch findet und ich wenig “Ärger” damit habe. Genau dieses Problem ist nun aus der Welt.

Wie erweitere ich den Backstage Bereich?

Leider steht die Erweiterung des Backstage Bereiches nicht im Visual Studio Ribbon Designer zur Verfügung, sondern muss über den XML Weg gemacht werden. In Visual Studio 2010 muss dafür eine neue Ribbon1.xml und Ribbon1.cs Datei angelegt werden.  Nun kann beim Öffnen der XML Datei der <backstage> Tag ausgewählt werden:

<?xml version="1.0" encoding="UTF-8"?>
 
	
		
			
				
					
						
						
						
						

Innerhalb des Backstage-Tag können verschiedene Bereiche deklariert werden. In meinem Beispiel habe ich einen Tab <tab> erstellt und innerhalb dieses Tabs eine <firstColumn>. In diesen Bereich erstelle ich ein Label, ein Button und zwei editBoxen. Die Daten sollen automatisch in der Registry abgespeichert und wieder geladen werden. Damit dies passiert, müssen verschiedene Callback Methoden definiert werden.

Mit der Funktion getText lese ich den Text aus der Registry aus und zeige ihn in der editBox an. Änderungen in der editBox bekommt man nur mit, wenn der Callback onChange implementiert wird. Damit nicht für jeden Callback eine eigene Methode geschrieben werden muss, kann ein tag vergeben werden. Anhand dieses Tags kann im CodeBehind heraus´gefunden werden, welches Control gerade angesprochen werden soll.

public  string GetConfig(IRibbonControl control)
{
	if  (control.Tag == "ebPhoneIP")
	{
		return _phoneIp;
	}
	else if (control.Tag == "ebPhoneExtension")
	{
		return _phoneExtension;
	}
	return String.Empty;
}

Eine typische Callback Methode erwartet als Parameter ein IRibbonControl. Das Control liefert einen control.Tag, den man zum Vergleich heranziehen kann. Die Signatur des onChange-Callback übergibt die Änderungen der editBox als String:

public void OnChangeConfig(IRibbonControl control, string text)
{
	if (control.Tag == "ebPhoneIP")
		_phoneIp = text;
	else if (control.Tag == "ebPhoneExtension")
		_phoneExtension = text;
}

Dies ist nur ein einfaches Beispiel für die Backstage Erweiterung. Im Backstage Bereich können Combox-Boxen, Bilder, Style-Elemente etc. benutzt und somit komplexere Einstellungsmöglichkeiten für das Add-In hinterlegt… oder die neuste Twitter-Message dargestellt werden. ;-)

 

Weiterführende Links:

 

 

Ich bin zum Twitter-Chat bei @MicrosoftTalk eingeladen worden!

27. Mai 2010 | Geändert: 27. Mai 2010 | .NET Developer Group Braunschweig | Community | INETA | msdn | MVP 0

Ich bin am 31.05.2010 von 10-11 Uhr Gast beim Microsoft Twitter-Chat “@MicrosoftTalk”. Hier die original News:

Am kommenden Montag, 31. Mai, findet auf dem Microsoft Twitter-Kanal „@Microsoft Talk“ mal wieder ein Community-Chat statt. Zu Gast ist diesmal Lars Keller, seines Zeichens Leiter der .NET Developer Group Braunschweig und „Most Valuable Professional“ für „VSTO Development“. Das Thema des rund einstündigen Online-Events lautet „Wie sieht eigentlich das Microsoft Community-Engagement aus?“. Los geht’s um 10 Uhr.

http://www.microsoft.com/germany/community/archiv.mspx?xd=/germany/community/components/data/Guidenews.xml&dt=description

Auf diesem Twitter-Kanal wurden bereits Achim Berg (ehemaliger Geschäftsführer MS Deutschland) und Donald Farmer (SQL Server 2008 R2) interviewt.

Dies ist mein erster Twitter-Chat! Ich muss zugeben, den Begriff “Twitter-Chat” hörte ich zum ersten Mal, als ich gefragt wurde, ob ich für den Chat zur Verfügung stehe. Ich bin sehr gespannt was mich erwartet.

Also wenn das kein Grund ist, sich bei Twitter anzumelden, dann weiß ich es auch nicht! ;-)

Mein eigenes Twitter-Profile findet Ihr hier: http://twitter.com/larskeller

Office Community Day 2010 findet am 15.06.2010 statt

18. April 2010 | Geändert: 22. April 2010 | Community | MS Office | msdn | MVP | Office (VSTO) Community Day | VSTO 2

Zum zweiten Mal findet der Office Community Day statt. Nachdem Mario Meir-Huber und ich diesen letztes Jahr in Wien in den Räumen von Microsoft Österreich organisiert haben, findet dieses Mal der Office Community Day bei Microsoft Deutschland in München statt. Am 15.06.10 um 09:15 geht es los.

Der Office Community Day widmet sich einen Tag lang der Entwicklung mit VSTO (Visual Studio Tools for Office). Hierbei zeigen wir nicht nur, was alles Neues mit der VSTO 4.0 gekommen ist, sondern zeigen auch viele Tipps & Tricks aus der Praxis. Erstmalig haben wir auch das Thema Sharepoint hinzugezogen, da sich, wie auch gerade mit den neuen Releases Sharepoint 2010 & MS Office 2010 zu sehen ist, die beiden Welten sich immer weiter verzahnen.

Für das Event konnten wir bekannte Sprecher aus der Community gewinnen. Es wird Vorträge von Tom Wendel, Andreas Aschauer, Helmut Obertanner (MVP VSTO) und natürlich Mario Meir-Huber und mir geben. Die vorläufige Agenda sieht folgendermaßen aus:

  • Neuerungen mit der VSTO 4
  • das OpenXML Dateiformat
  • Test Driven Development (TDD) mit dem SharePoint Server
  • der Outlook Social Connector
  • Sehenswertes in SharePoint 2010 für Entwickler
  • Outlook Entwicklung

Wie der Titel schon aussagt, ist der ganze Tag eine Community Veranstaltung. Darum freuen wir uns sehr, wenn ihr uns helfen würdet, diesen Tag zu promoten. Bloggt, twittert, schreit es in die Welt hinaus, dass der Office Community Day am 15.06.10 in München statt findet! Danke! :-)

Mehr Informationen und direkt anmelden könnt ihr euch unter http://www.vsto-taskforce.de