Rolf: XLS2HTM Heureka!

Hallo,

wer schon immer danach suchte: eine Exceltabelle nach HTML zu wandeln... hier ist eine Grundlage für individuelle Weiterentwicklungen.

Einen wunderschönen SamstagAbend auch, Rolf

--- Anfang Script --->

Script liest eine Exceltabelle aus und zeigt den Inhalt im Browser

Script geschreiben und getestet von Rolf Rost am Samstag, 13. März 1999

use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3;

my $Excel = Win32::OLE->GetActiveObject('Excel.Application') ||
Win32::OLE->new('Excel.Application', 'Quit');

my $Book = $Excel->Workbooks->Open('c:\links.pl\cgi-bin\tree.xls');
my $Sheet = $Book->Worksheets(1);  # entspricht Tabelle1, erstes ABlatt
my $array = $Sheet->Range('A1:D22')->{'Value'};
$Book->Close;

print "content-type:text/html\n\n";
print "<HTML><HEAD>
<TITLE>Eine Excel Tabelle als HTML Tabelle</TITLE>
</HEAD><BODY BGCOLOR=silver>";

print "<h3>Eine Excel Tabelle öffnen - als HTML Tabelle ausgeben:</h3>";

print "<table border=1 align=center cellspacing=1>\n";
foreach my $ref_array (@$array){
print "<tr>\n";
foreach my $scalar (@$ref_array){
  print "<td>$scalar</td>\n";
}
print "</tr>\n";
}
print "</table>\n
</body></html>";

--- Ende Script ----<

Info to PERL, command -line: perl -v

This is perl, version 5.005_02 built for MSWin32-x86-object

(with 1 registered patch, see perl -V for more detail)

Copyright 1987-1998, Larry Wall

Binary build 509 provided by ActiveState Tool Corp.

http://www.ActiveState.com

Built 13:37:15 Jan  5 1999

Perl may be copied only under the terms of either the Artistic License or

the

GNU General Public License, which may be found in the Perl 5.0 source

kit.

Complete documentation for Perl, including FAQ lists, should be found on

this system using man perl' or perldoc perl'.  If you have access to

the

Internet, point your browser at http://www.perl.com/, the Perl Home Page.

  1. Cooles Scripts,
    Ich werde das mal ausprobieren.
    CU Thomas

    Hallo,

    wer schon immer danach suchte: eine Exceltabelle nach HTML zu wandeln... hier ist eine Grundlage für individuelle Weiterentwicklungen.

    Einen wunderschönen SamstagAbend auch, Rolf

    --- Anfang Script --->

    Script liest eine Exceltabelle aus und zeigt den Inhalt im Browser

    Script geschreiben und getestet von Rolf Rost am Samstag, 13. März 1999

    use strict;
    use Win32::OLE qw(in with);
    use Win32::OLE::Const 'Microsoft Excel';
    $Win32::OLE::Warn = 3;

    my $Excel = Win32::OLE->GetActiveObject('Excel.Application') ||
    Win32::OLE->new('Excel.Application', 'Quit');

    my $Book = $Excel->Workbooks->Open('c:\links.pl\cgi-bin\tree.xls');
    my $Sheet = $Book->Worksheets(1);  # entspricht Tabelle1, erstes ABlatt
    my $array = $Sheet->Range('A1:D22')->{'Value'};
    $Book->Close;

    print "content-type:text/html\n\n";
    print "<HTML><HEAD>

    »»  <TITLE>Eine Excel Tabelle als HTML Tabelle</TITLE>
    »»  </HEAD><BODY BGCOLOR=silver>";

    print "<h3>Eine Excel Tabelle öffnen - als HTML Tabelle ausgeben:</h3>";

    print "<table border=1 align=center cellspacing=1>\n";
    foreach my $ref_array (@$array){

    »»  print "<tr>\n";
    »»  foreach my $scalar (@$ref_array){

    print "<td>$scalar</td>\n";

    »»  }
    »»  print "</tr>\n";

    }
    print "</table>\n

    »»  </body></html>";

    --- Ende Script ----<

    Info to PERL, command -line: perl -v

    This is perl, version 5.005_02 built for MSWin32-x86-object

    (with 1 registered patch, see perl -V for more detail)

    Copyright 1987-1998, Larry Wall

    Binary build 509 provided by ActiveState Tool Corp.

    http://www.ActiveState.com

    Built 13:37:15 Jan  5 1999

    Perl may be copied only under the terms of either the Artistic License or

    the

    GNU General Public License, which may be found in the Perl 5.0 source

    kit.

    Complete documentation for Perl, including FAQ lists, should be found on

    this system using man perl' or perldoc perl'.  If you have access to

    the

    Internet, point your browser at http://www.perl.com/, the Perl Home Page.

  2. Hallo,

    das geht aber einfacher: Waehle in Excel "Datei/Speichern unter..." mit CSV als Dateityp. Lies diese Datei in Perl ein, mach ein vernuenftiges Split mit Semikolon als Separator (das ist ja DAS Fachgebiet fuer Perl) und gib das HTML aus.

    Da brauchst Du keine Win32-Module (die Du auf einem UNIX-System vermutlich nicht finden wirst, vergewaltigst Perl nicht, und brauchst Dir auch keine Gedanken um abstuerzende OLE-Server machen.

    Calocybe

    1. Hallo Calocybe,

      das ist freilich richtig und da hast Du völlig recht mit dem was Du da sagst. Ich verwende im Intranet auch ein kleines Script was kleine Tabellen (Telefonnummern usw.) zur Laufzeit aus einer CSVTabelle nimmt und in den Browser schreibt - funktioniert prima. Bei etwaigen Änderungen braucht nur die CSVTabelle geändert werden und die im Browser gezeigten Tabellen sind immer auf dem neuestem Stand.

      Ob der Zugriff direkt auf eine ExcelTabelle funktioniert - das wollte ich einfach mal ausprobieren und ich habe auch längere Zeit danach gesucht - deswegen "heureka". Das hier gezeigte Beispiel habe ich aus der Doku von ActivePerl, leicht geändert...

      Noch ein paar philosophische und subjektive Betrachtungen: Heutzutage ist es doch so, dass nur noch geklickt wird. Mich hat einmal einer gefragt, wie unter NT Nachrichten ins Netz geschickt werden und er war sichtlich verblüfft darüber dass es nur über die Kommandozeile geht. Warum nicht ein Fensterchen zum Klicken so wie Winpopup unter Windows 95?
      Genauso ist das mit Excel. So eine läppische Tabelle die zum Browser soll als CSVDatei zu bearbeiten, dafür brauche ich persönlich auch kein Excel. Die in den Browser sollen, das sind ohnehin Tabellen die höchstens 30, 40 Zeilen haben --- und dafür gleich Excel??? Nja, mit Excel kann man schön die Spalten sortieren und so weiter. Und wenn der Server nun  eine NT Maschine ist.......

      Verwandtes Thema: Datenbanken <---> FlatFiles. Hinsichtlich dieses Themas schließe ich mich persönlich auch dem an, was Stefan Muenz einmal weiter unten darüber gesagt hat.

      Viele Grüße, Rolf

      1. Hallo Calocybe,

        Noch ein paar philosophische und subjektive Betrachtungen: Heutzutage ist es doch so, dass nur noch geklickt wird. Mich hat einmal einer gefragt, wie unter NT Nachrichten ins Netz geschickt werden und er war sichtlich verblüfft darüber dass es nur über die Kommandozeile geht.

        Was fuer Nachrichten meinst Du damit? Etwa NET SEND? Ich persoenlich benutze das nie. Selbst fuer Ein-Zeilen-Nachrichten schicken wir gewoehnlich gleich ne EMail (kostet ja nichts im Intranet).

        Genauso ist das mit Excel. So eine läppische Tabelle die zum Browser soll als CSVDatei zu bearbeiten, dafür brauche ich persönlich auch kein Excel.

        Find ich auch.

        Und wenn der Server nun  eine NT Maschine ist.......

        Ja, was ist dann? Oder meinst Du, wenn der Server KEINE NT Maschine ist? Achso ja, dann macht es Sinn. Aber der Tag wird kommen, da wird Microsoft Excel auf Linux portieren, oder sie werden untergehen! Hoffentlich...

        Calocybe