Klaus Mock: Umwandeln einer Excel-Tabelle in eine tab-getrennte txt-Datei

Beitrag lesen

Hallo,

Wie kann ich ein Excel Sheet in eine tab-getrennte txt-Datei umwandeln.

Für das Auslesen von Excel-Dateien kannst Du das Modul Spreadsheet::ParseExcel verwenden.

Ich hoffe, Du weißt, wie Du ein Modul installieren kannst.

Da ich nicht über sonderlich viel Erfahrung verfüge wäre ich dankbar wenn ich den Code hätte und nicht nur oberflächliche Erklärungen.

Eigentlich bin ich mir nie darüber im Klaren, ob das posten con Code immer das Wahre ist, aber was solls:

use strict;
use Spreadsheet::ParseExcel;
my $excel = new Spreadsheet::ParseExcel;

my $parser = $excel->Parse('deine_datei.xls');

$sheet = $parser->{Worksheet}[0]; # liest aus der ersten Tabelle aus
for(my $irow = $sheet->{MinRow} ;   defined $sheet->{MaxRow} && $irow <= $sheet->{MaxRow} ; $irow++)
  { # hier werden alle verfuegbaren Zeilen durchlaufen
  my(@werte) = ();
  for(my $icolumn = $sheet->{MinCol} ; defined $sheet->{MaxCol} && $icolumn <= $oWkS->{MaxCol} ; $sheet++)
    { # hier werden alle verfuegbaren Spalten der aktuellen Zeile durchlaufen
    my $act_cell = $sheet->{Cells}[$irow][$icell]; # Ermitteln der aktuellen Zelle
    if($act_cell)
      { # nur wenn in der aktuellen Zelle was drin steht, wird der Wert uebernommen
      push @werte, $act_cell->Value;
      }
    else
      { # falls die aktuelle Zelle nicht definiert ist, wird dafuer gesort, dass das Array auch richtig befuellt wird
      push @werte, '';
      }
    }
   print join("\t",@werte),"\n";
  }

(Achtung, ungetestet)

Grüße
  Klaus