perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 18
Click for quality!




12.02.2012 / 02:35

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitrag"Exceltabellenabgleich" mit Perl
Seitenanfang
Hi,
ich mit ein fast Neuling im Programmieren.
Ich hoffe in diesem Forum kann mir jemand weiterhelfen.
Kann zwar Grundlagen in C bzw. C++ aber in Perl kenne ich mich praktisch nicht aus.

Habe nun aber folgende Aufgabe.
Es gibt zwei Exceltabellen die identische Spalten haben.
In diesen Tabellen sind verschiedene Beschäftigte gespeichert dich durch ihre Personalnummer unverwechselbar sind (da eingie die selben Namen haben).
Nun möchte ich Tabelle 1 (der älteren) mit Tabelle 2 (der aktuellen) abgleichen.
Dann sollen zwei Exceltabellen oder csv rauskommen.
Eine mit den Nutzern die in Tabelle 1 aber nicht in Tabelle 2 sind und anderst herum. Die Nutzer die in beiden Tabellen sind bleiben unberührt.

Nun meien Frage:
Kann ich die Aufgabe mittels hashes lösen?
Kann mir Jemand starthilfe beim lösen dieses Problems geben?

Datum: 07.08.2006-08:53

Beitragre: "Exceltabellenabgleich" mit Perl
Seitenanfang
Reicht es, wenn man den Abgleich nur über die Personalnummer macht?

Es gibt auf CPAN das Modul Spreadsheet::ParseExcel. Damit kannst Du eine Excel-Datei öffnen.

Wenn die Daten auf nur einem Sheet in der ersten Spalte stehen und die Personalnummer nicht in mehreren Zeilen vorkommt:


#!/usr/bin/perl

use strict;
use warnings;
use Spreadsheet::ParseExcel::Simple;

my %employees;

my $xls = '/path/to/excel.xls';
my $obj = Spreadsheet::ParseExcel::Simple->read($xls);

my $sheet = ($obj->sheets())[0];
while($sheet->has_data()){
my ($pers_nr) = ($sheet->next_row())[0];
$employees{$pers_nr} = 1;
}

Danach musst Du noch die zweite Datei einlesen und überprüfen, ob schon ein Eintrag im Hash existiert oder nicht.

Datum: 07.08.2006-14:28

-






-
-