Ruby zaubert mit Excel und Spreadsheets

In der heutigen Arbeitswelt werden viele Daten in Spreadsheets oder Exceltabellen verwaltet.
Ein paar Tage ist es her, da galt es für mich anhand einer Exceltabelle Infos zu einem Projekt zu sammeln und mit zugehörigen Dateien in ein Verzeichnis zu verpacken.
Dabei war es Fakt die Datensätze der Tabelle auszulesen und mit den Datensätzen in der Datenbank zu vergleichen.
Bei Google stößt man dabei schnell auf “CSV Spreadsheets lesen” nur dann wird das Konvertieren und Selektieren zur schmerzlichen Angelegenheit.
Um größere Schäden zu vermeiden, gibt es schlaue Magier die immer ein Gem in dem Zylinder haben.
Dazu stelle ich euch das RubyGem “Roo” vor, dass das Verarbeiten von Excelsheets zu einem Kinderspiel macht.
Ich werde mich bei dem Beispiel nur auf den kleinsten Anwendungsfall beziehen.
Und dazu installieren wir das Gem zuerst:

$ sudo ruby gem install roo

Unser Beispiel ist eine Spreadsheet im .xlsx Format.
screenshot1

#!/usr/bin/env ruby
require 'rubygems'
require 'roo'
foo = Roo::Excelx.new("projects.xlsx")
foo.default_sheet = foo.sheets.first
2.upto(8) do |line|
  project_title = foo.cell(line,'A')
  type = foo.cell(line, 'B')
  vendor = foo.cell(line, 'C')
  target = foo.cell(line, 'D')
  puts "#{project_title}\t#{type}\t#{vendor}\t#{target}"
end
foo.to_csv("foo.csv")

Mit diesem Zehnzeiler wird für die Zeile 2 bis 4 der jeweilige Inhalt einer Spalte
in die dafür definierte Variable geschrieben.
Mit “puts” wird der Inhalt der Variable an die Ausgabe gegeben.
Bildschirmfoto 2014-05-06 um 12.20.26
Falls die Excelsheets zu lang sind um ein Ende definieren zu können kann das upto() mit weiteren
Optionen ausgeführt werden.

first_column,
last_column,
first_row and
last_row

Auf unseren Fall angepasst, schaut das so aus:

2.upto(foo.last_row) do |line|

Mit diesem Gem macht auch das Verarbeiten von großen Exceltabellen wieder einen Sinn.
Weitere Infos findet Ihr auf der Homepage von Roo
Ich kann dazu nur noch sagen “Just awesome!” oder auch “It’s a kind of magic!”
Mehr coole Tricks und Magie findet Ihr auf unserem Blog

Thilo Wening
Thilo Wening
Senior Consultant

Thilo hat bei NETWAYS mit der Ausbildung zum Fachinformatiker, Schwerpunkt Systemadministration begonnen und unterstützt nun nach erfolgreich bestandener Prüfung tatkräftig die Kollegen im Consulting. In seiner Freizeit ist er athletisch in der Senkrechten unterwegs und stählt seine Muskeln beim Bouldern. Als richtiger Profi macht er das natürlich am liebsten in der Natur und geht nur noch in Ausnahmefällen in die Kletterhalle.

Migration auf Exchange Server 2013

Nachdem wir als Mailserver schon immer Microsoft Exchange im Einsatz haben und wir bisher auch zufrieden damit sind, hatten wir uns für die Migration von Exchange 2010 auf Exchange 2013 entschieden.
Hier einige Neuerungen im Überblick:

  • Es wird kein MAPI-Protokoll mehr verwendet, sondern bindet auch interne Clients per RPC über HTTPS (Outlook Anywhere) an die Postfächer an.
  • Die Serverrollen Hub-Transport und Unified-Messaging hat Microsoft gestrichen. Die Funktionen übernehmen die Postfach- und die Clientzugriffserver.
  • Die Exchange-Verwaltungskonsole und die webbasierte Exchange-Systemsteuerung von Exchange Server 2010 wurde zur neuen Exchange Administrative Console (EAC) zusammengefasst. Die Bezeichnung ist nun Exchange-Verwaltungskonsole, hat aber nichts mehr mit der alten Konsole in Exchange Server 2010 gemeinsam.
  •  Der Postfachserver umfasst alle Serverkomponenten aus Exchange 2010:  Clientzugriffsprotokolle, Transportdienst, Postfachdatenbanken und Unified Messaging. Der Postfachserver verarbeitet alle Vorgänge für die aktiven Postfächer auf dem lokalen Server.
  • Für den E-Mail-Transport in Exchange Server 2013 sind die drei Dienste Front-End Transport Service (FET), Hub Transport Service (HT) und Mailbox Transport Service (MT) zuständig. Diese Dienste gehören jetzt zur Postfachserver-Rolle. Hub-Transport-Server gibt es nicht mehr.
  • Erhöhte Sicherheit und integrierter Virenschutz.

Diese Systemvoraussetzungen sind zu beachten:

  • Der Exchange Server 2013 kann in Organisationen mit Exchange Server 2007 SP3 und Exchange Server 2010 SP3 betrieben werden. Exchange Server 2003 ist nicht kompatibel zu Exchange Server 2013.
  • Als Betriebssystem muss Windows Server 2008 R2 oder Windows Server 2012 laufen.
  • Die Domäne und die Gesamtstruktur muss mindestens mit der Funktionsebene Windows Server 2003 betrieben werden.
  • Exchange Server 2013 nutzt IPv6 und IPv4 zur Kommunikation. Auch wenn Sie im Netzwerk IPv6 nutzen, muss IPv4 aktiv sein.

Da es schon viele gute Howtos im Netz gibt, spar ich mir das und verweise hier auf 3 Seiten die mich bei der Migration sehr gut unterstützt haben.
John Lose – Link
Frank Carius – Link
Frankys Web – Link

Martin Schuster
Martin Schuster
Senior Systems Engineer

Martin gehört zu den Urgesteinen bei NETWAYS. Wenn keiner mehr weiss, warum irgendwas so ist, wie es ist, dann wird Martin gefragt. Er hat es dann eigentlich immer mal schon vor Jahren gesehen und kann Abhilfe schaffen :). Vorher war er bei 100world als Systems Engineer angestellt. Während er früher Nürnbergs Partykönig war, ist er nun stolzer Papa und verbringt seine Freizeit damit das Haus zu renovieren oder zieht einfach um und fängt von vorne...

Wieder Updates für Office for Mac erschienen

Zu Microsoft Office for Mac sind heute wieder Updates erschienen: Office 2004 11.5 und Office 2008 12.1.1. Für das ältere Office 2004 wird vor allem Support für die XML Dateiformate (.docx, .pptx, .xlsx) nachgeliefert und die allgemeine Stabilität verbessert. Die Details stehen in diesem KnowledgeBase Artikel. Das Update für Office 2008 liefert vor allem Verbesserungen bezüglich Stabilität und Performance und weniger neue Features. Die genauen Verbesserungen stehen hier. Da Office 2008 bei mir noch recht häufig Probleme macht, hoffe ich, dass sich die Stbilität durch das Update merklich verbessert. Hier gehts zum Download der beiden Updates.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.

SP1 für MS Office 2008 Mac erschienen

Aus eigener Erfahrung weiß ich, dass MS Office 2008 für Macintosh nicht wirklich zu den stabilsten Programmen für den Mac gehört. Gerade Excel und PowerPoint stürzen bei mir recht häufig ab und auch Entourage hat einige Probleme. Deswegen hoffe ich, dass einige dieser Schwierigkeiten durch das soeben erschienene ServicePack 1 für MS Office 2008 behoben werden. Zwar klingt die Liste der Verbesserungen noch ein bisschen nebulös, aber meine Probleme könnten sich durchaus darunter verstecken:

  • compatibility fixes across the suite
  • printing issues across the suite
  • Excel’s custom error bars get their formatting options back
  • several Exchange improvements in Entourage
  • improved AppleScript support in Entourage and PowerPoint

Weitere interessante Neuigkeit am Rande: VBA kommt wieder. Nachdem es vor ungefähr 2 Jahren abgekündigt wurde, hat sich die Apple Business Unit bei MS entschieden es in Office 2008 nachzurüsten. Es gibt dazu eine offizielle Pressemeldung und einen Blogpost, der die Hintergründe erläutert.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.