Archiv für die Kategorie ‘Softwareentwicklung’

Excel-Dateien erstellen und bearbeiten

15. April 2014

Mit der Bibliothek PhpExcel lassen sich in PHP bequem Excel-Dateien erstellen und bearbeiten. Selbst einzelne Sheets können neu angelegt oder bearbeitet werden. Das funktioniert einfacher und komfortabler als das Arbeiten mit Word-Dateien.

Auf der Bibliothekswebseite stehen etliche Beispiele bereit, um fast alle Bereiche rund um Excel in PHP abzudecken.

Selbst Zellen mit Formeln können befüllt und erhalten werden. Dazu gibt es die Funktion:

$objWriter->setPreCalculateFormulas(FALSE);

Hier ein Beispiel, um eine Excel-Datei zu öffnen , zu bearbeiten und zu speichern:


<?php
error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
 
/** Include PHPExcel */
require_once 'Classes/PHPExcel.php';
 
/** PHPExcel_IOFactory */
include 'Classes/PHPExcel/IOFactory.php';
//die Datei demo.xls liegt im gleichen Verzeichnis wie diese PHP-Datei
$objPHPexcel = PHPExcel_IOFactory::load('Demo.xls');
//welches Sheet soll geladen warden?
$objWorksheet = $objPHPexcel->getSheet(1);
//in der nächsten Zeile setzen wir im 1. Sheet in der Zelle A6 den Wert „Mathias Bauer“
$objWorksheet->getCell('A6')->setValue('Mathias Bauer');
//den neu gesetzten Wert auslesen und ausgeben
$value = $objWorksheet->getCell('A6')->getValue();
echo $value;
//das 2. Sheet laden
$objWorksheet0 = $objPHPexcel->getSheet(2);
//und in der Zelle E11 den Wert “An der Gersprenz 7” setzen
$objWorksheet0->getCell('E11')->setValue('An der Gersprenz 7');
//den neu gesetzten Wert auslesen und anzeigen
$value = $objWorksheet0->getCell('E11')->getValue();
echo $value;
//das default Sheet setzen, welches nach dem Öffnen der Datei mit Excel angezeigt warden soll
$objPHPexcel->setActiveSheetIndex(0);
//das Dateiformat setzen
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'Excel2007');
//evtl. vorhandene Formeln nicht ausführen, sondern lediglich die neuen Werte setezen
$objWriter->setPreCalculateFormulas(FALSE);
//Werte in neuer Datei speichern
$objWriter->save('Demo2.xlsx');
?>

Wenn Ihnen die Lösung weitergeholfen hat, würde ich mich über ein „Like” oder einen Kommentar sehr freuen. Danke!

Framestarter – Webanwendungen schneller entwickeln

23. August 2012
Default Frontend-Template des Framestarters

Default Frontend-Template des Framestarters

In meiner letzten Webanwendung habe ich das Framework CodeIgniter eingesetzt und getestet. CodeIgniter ist sehr gut, schnell und leichtgewichtig. Deshalb kann ich es absolut empfehlen.

Ein Punkt hat mich jedoch gestört. Von Beginn an sind nicht die gängigen Komponenten vorinstalliert, die eine Durchschnittswebanwendung benötigt. Man kann zwar diese Komponenten mittels Plugins nachinstallieren und konfigurieren. Jedoch kostet das den Entwickler bei jeder neuen Webanwendung wieder wertvolle Zeit, die er in die Entwicklung der eigentlichen Funktionen stecken könnte.

Ein Ansatz bietet BonFire. BonFire wurde speziell für die schnelle Entwicklung von CodeIgniter-Anwendungen programmiert. Hier sind von Beginn an schon viele Plugins und eigene Erweiterungen integriert. Allerdings sind das bereits zu viele. Bspw. ist der Administrationsbereich schon zu umfangreich. Auch die Templates sind zu umfassend. In diesem Fall muss man nach der Installation Quellcode anpassen oder entfernen.

Es wird ein Startpacket mit allen Komponenten benötigt, die auf möglichst allen Webseiten zu finden sind. Im Zweifelsfall ist die Komponente weg zu lassen und nachträglich zu installieren und zu konfigurieren.

Deshalb soll Framestarter Abhilfe verschaffen. Die Idee besteht darin, möglichst schnell eine Webanwendung entwickeln zu können ohne das Rad neu erfinden zu müssen. Framestarter basiert auf CodeIgniter und enthält zusätzlich von Beginn an:

  • eine .htaccess-Datei, die aus der URL /index.php/ entfernt.
  • eine Benutzerregistrierung (Tank Auth).
  • Sprachdateien (aus Tank Auth).
  • Die deutsche Sprachdatei wurde angepasst.
  • ein Administrationsbereich mit der Möglichkeit schnell ein Rechtesystem umzusetzen. In  der Datenbank wird standardmäßig die group_id = 3 gesetzt.
  • ein Templatesystem (beinhaltet bewusst zwei rudimentäre Themes für das Frontend und Backend).
  • HMVC, um das Template in Bereiche unterteilen und modular entwickeln zu können.
  • Bsp.-Modulpositionen sind in den Konfigurationsdateien modules.php und admin_modules.php hinterlegt.

Framestarter spart dem Entwickler zu Beginn des Projektes eine Menge Zeit. Somit kann dieser direkt mit der Programmierung der eigentlichen Funktionen beginnen.

Framestarter kann hier kostenlos heruntergeladen werden.

Über ein „Like” oder einen Kommentar würde ich mich sehr freuen. Danke!

CodeIgniter-Pagination: aktuelle Seitenzahl wird nicht angezeigt

15. Juli 2012

Für ein Webprojekt verwende und teste ich im Moment das Framework CodeIgniter.

Der Einsatz der Bibliothek „Pagination“ hat leider auf Anhieb nicht funktioniert. Beim Anklicken von Seitenzahlen wurde zwar die jeweilige Seite angezeigt, aber in der Seitenzahlanzeige selbst wurde immer nur die Eins fett dargestellt.

Anzeige der Seitenzahlnavigation

Anzeige der Seitenzahlnavigation

Abhilfe verschafft hier nur der Eingriff in die Bibliothek. Hierzu müssen Sie in der Datei system/libraries/Pagination.php vor der Zeile 157 folgende Zeile einfügen:


$this->uri_segment = $CI->uri->total_segments();

Der Codeabschnitt sieht nach dem Einfügen wie folgt aus:


if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
{
  if ($CI->input->get($this->query_string_segment) != $base_page)
  {
    $this->cur_page = $CI->input->get($this->query_string_segment);

     $// Prep the current page - no funny business!
     $this->cur_page = (int) $this->cur_page;
  }
}
else
{
  $this->uri_segment = $CI->uri->total_segments();
  if ($CI->uri->segment($this->uri_segment) != $base_page)
  {
     $this->cur_page = $CI->uri->segment($this->uri_segment);

     // Prep the current page - no funny business!
     $this->cur_page = (int) $this->cur_page;
  }
}

 
Wenn Ihnen die Lösung weitergeholfen hat, würde ich mich über ein „Like” oder einen Kommentar sehr freuen. Danke!

PHP: eine dynamische Worddatei erstellen und aufrufen

30. Juni 2012

In diesem Artikel möchte ich Ihnen zeigen, wie man mit PHP eine dynamische Worddatei erstellen kann und diese ohne zwischenzuspeichern dem Anwender zur Verfügung stellt.

Zunächst bedienen Sie sich einem kleinen Trick. Sie erstellen eine Worddatei und speichern diese im RTF-Format ab. Diese Datei dient Ihnen als Template, in dem Sie Platzhalter einbauen und diese später dynamisch in PHP ersetzen können. Im verwendeten Beispiel habe ich die Datei wordfile.rtf genannt.

RTF-Datei

RTF-Datei

Im nächsten Schritt müssen Sie der Datei noch die Endung .php hinzufügen. Dazu benennen Sie im Windowsexplorer die Datei einfach um und hängen die Endung dran.  Die umbenannte Datei können Sie mittels PHP einlesen und bearbeiten!

Anschließend öffnen Sie die Datei wordfile.rtf.php und ersetzen die Platzhalter in PHP wie folgt:


<?php
$content = file_get_contents('wordfile.rtf.php');

//remove php tags
$content = str_replace(‘<?php /*’, ”, $content);
$content = str_replace(‘?>’, ”, $content);

// replace variables
$content = str_replace(‘%test%’, “Das ist ein Test!”, $content);
$content = str_replace(‘%date%’, date(“d.m.Y”), $content);
$content = str_replace(‘%text%’, “Hier steht ein Text.”, $content);
?>

Und mit folgendem Code wird die Datei, ohne diese auf dem Server zu speichern, zum Anwender gesendet:


<?php
// send file to user
header('Content-Type: application/rtf;charset=utf-8');
header('Content-Disposition: attachment; filename="Test.doc"');
print $content;
?>

Das Endergebnis sieht dann wie folgt aus:

Ergebnis der dynamisch erzeugten Worddatei

Ergebnis der dynamisch erzeugten Worddatei

Wenn Ihnen die Lösung weitergeholfen hat, würde ich mich über ein „Like” oder einen Kommentar sehr freuen. Danke!

 

Facebook Like Box

29. April 2012
Facebook Like Box

Facebook Like Box

Sie haben bereits eine Facebook-Fanpage? Und Sie wollen Ihren Webseitenbesuchern diese nicht vorenthalten?  Dann können Sie mit der „Facebook Like Box” u.a. alle „likes“ der Fanpage auf Ihrer Webseite anzeigen lassen. Was genau Sie Ihren Besuchern alles zeigen möchten, können Sie einstellen.

Den Quellcode für die „Like Box“ erhalten Sie von Facebook unter folgender URL http://developers.facebook.com/docs/reference/plugins/like-box/. Sie müssen sich noch nicht einmal einloggen. Geben Sie dort die URL Ihrer Fanpage ein und nehmen Sie die gewünschten Einstellungen vor. Nach jeder Einstellung wird die Darstellung aktualisiert. Abschließend klicken Sie auf „Get Code“ und kopieren diesen an die entsprechende Stelle Ihrer Webseite.

Wenn Ihnen der Artikel weitergeholfen hat, würde ich mich über ein „Like” oder einen Kommentar sehr freuen. Danke!