zodiac2k's Blog

zodiac2k's Blog

Python: Facebook Login via Python Script
Verfasst am 24.02.2016

Durch die sehr ausgereiften Bibliotheken eignet sich Python sehr gut, um divese Spielereien auszuprobieren. Unter anderem auch das automatisierte Einloggen in Facebook via Script. Es ist aber davon auszugehen, dass Facebook exzessive Scriptnutzung registriert und dies durch Sperrungen unterbinden wird.

Nichtsdestotrotz möchte ich hier ein kleines Experiment vorstellen, dass sich in Facebook einloggt, die Profilseite eines Nutzers öffnet und dessen Heimatstadt ausliest.

Zur Vorbereitung benötigen wir einige Bibliotheken. urllib ist für das Ausführen von HTTP-Requests ... Weiterlesen!
C/C++: MongDB über Mongo C-Driver
Verfasst am 23.02.2016

Da es im Web nur sehr wenige Beispiele zur Implementation der Mongo C-Driver gibt, möchte ich hier ein Tutorial anbieten, dass übersichtlich ist, aber dennoch genug Details enthält. Für dieses Tutorial setze ich Grundkenntnisse in Linux, C und MongoDB vorraus!

Zuerst müssen die benötigten Pakete installiert werden und die Treiber heruntergeladen werden. Die Kommandos stammen hier von einem Ubuntu LTS 14:

$ sudo apt-get install pkg-config libssl-dev libsasl2-dev
$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.3.0/mongo-c-driver-1.3.0.tar.gz $... Weiterlesen!
Java: Zeitbereiche in Monaten zwischen zwei Daten
Verfasst am 02.09.2015

In speziellen Fällen, beispielsweise bei einer Jahresrechnung, müssen monatliche Statistiken erstellt werden. Da oftmals die Zeitbereiche nicht am 1. Januar anfangen und am 31. Dezember enden, müssen die Zeitbereiche in Monatsabschnitte unterteilt werden.

Hier ein kleines Beispiel, dass genau dies macht:

import java.util.Calendar;
import java.util.Date;
.
.
.
final Calendar cal = Calendar.getInstance();

final Date curr = new Date("Mon, 13 Dec 2014 00:00:00 GMT+0200");
final Date end = new Date("Mon, 12 Dec 2015 23:59:59 ... Weiterlesen!
Java: Zeitperioden eines Jahres in Wochen und Monaten
Verfasst am 14.07.2015

Hin und wieder muss man als Programmierer monatliche oder wöchentliche Berechnungen durchführen und man benötigt die Zeitstempel für Anfang und Ende der Zeitperioden.

Hier ein Beispiel zum berechnen der Zeitperioden eines Jahres in Wochen: import java.util.Calendar; import java.util.Date; . . . final Calendar cal = Calendar.getInstance(); int year = 2015; //Calendar.WEEK_OF_YEAR needs year as reference cal.set(Calendar.YEAR, year); for (int week = 1; week <= cal.getActualMaximum(Calendar.WEEK_OF_YEAR); week++) { //start time
cal.set(Calendar.YEAR, ... Weiterlesen!
Programmierung: Aspose.Cells vs Apache-POI
Verfasst am 06.07.2015

Da ich in den letzten Monaten mit beiden Frameworks intensiv gearbeitet habe, möchte ich mir mal ein Urteil erlauben... auch wenn ich ein Befürworter und Unterstützer von OpenSource Projekte bin, muss ich hier eindeutig die Vorteile von Aspose.Cells hervorheben.

Das liegt nicht nur daran, dass Aspose.Cells wesentlich übersichtlicher und leichter zu benutzen ist, sondern auch eine große Palette der Excel-Funktionalitäten unterstützt und bereitstellt.

Allein durch die strikte Unterscheidung zwischen Excel 2003 und Excel 2007 in Apache POI (HSSF und XSSF) wird die Bearbeitung... Weiterlesen!
Apache POI: Apache POI Stolpersteine
Verfasst am 22.05.2015

In den letzten Wochen habe ich beruflich viel mit Apache POI gearbeitet und dabei sind mir einige Stolpersteine aufgefallen. Da die Informationen im Web doch recht dünn sind, schreibe ich diese Probleme mal zusammen:

Excel-Sheets mit GraphenExcel-Sheets mit Graphen können zwar bearbeitet werden, so dass der Graph mit neuen Werten dargestellt wird, aber man kann mit Apache-POI  keine Sheets klonen und kopieren, die Graphen enthalten.

Excel-Sheet Namen Limit
Excel hat ein internes Limit, dass Sheet-Namen auf 31 Zeichen begrenzt sind.

Excel-Formeln und Löschen von ... Weiterlesen!
Apache POI: POI-Sheets KnowHow
Verfasst am 22.05.2015

Wenn man mit Apache POI arbeitet, hat man meist mit mehreren Arbeitsblättern zu tun. Manchmal bekommt man Vorlagen, die man bearbeiten muss oder die als Layout-Template für andere Blätter verwendet werden sollen.

Klonen von Arbeitsblättern (Sheets): int template = workbook.getSheet("Template"); Sheet sheet = workbook.cloneSheet(template); Benennen von Arbeitsblättern (Sheets): int id = workbook.getSheetIndex(sheet); workbook.setSheetName(id, "MySheet"); Durchlaufen aller Arbeitsblätter (Sheets): for (int i = 0; i < workbook.getNumberOfSheets(); i++) { ... Weiterlesen!
Apache POI: Excel Dokumente abschließen mit POI
Verfasst am 21.05.2015

Bevor ein Excel Dokument mit Apache POI gespeichert werden kann, sollte man einige Dinge beachten. Zum einen müssen die Formeln aktualisiert werden, sonst entstehen Inkonsistenzen zwischen Formelinhalt und dargestelltem Wert und die Sheet, das beim öffnen als erstes angezeigt werden soll, muss gesetzt werden. Sonst steht dies einfach auf dem zuletzte bearbeiteten Sheet.

Aktualisierung von Formeln von HSSF (Excel 2003 Format): import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator; import org.apache.poi.hssf.usermodel.HSSFWorkbook; . . . ... Weiterlesen!
Apache POI: Excel Hyperlinks mit Apache POI
Verfasst am 19.05.2015

Bei großen Excel-Sheets ist es wichtig, die Übersicht zu behalten. Hier wird oftmals eine Übersichtsseite als Einstieg verwendet, die Links zu anderen Sheets enthält.

Hier ein Beispiel wie man die Zelle cell mit einem Link zum Sheet "Seite220" Zelle "A1" versieht: import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.Hyperlink; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; . . . CreationHelper createHelper = workbook.getCreationHelper(); Hyperlink link = ... Weiterlesen!
Apache POI: Zugriff auf Excel-Zellen mit POI
Verfasst am 10.05.2015

Der Zugriff auf Excelzellen über Apache POI ist sehr simpel. Man kann auf mehrere Weisen auf die Zellen zugreifen, über Row-ID und Column-ID aber auch über die Zellreferenz, die man letzendlich als Benutzer in Excel sieht.

Zugriff auf die Zelle "A3" über CellReferenz:
import org.apache.poi.hssf.util.CellReference; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; . . . CellReference cellRef = new CellReference("A3"); Cell cell = null; Row row = null; row = sheet.getRow(cellRef.getRow());... Weiterlesen!