Using perl Syntax Highlighting
- #!c:/perl/bin
- use Spreadsheet::XLSX; # Módulos requeridos por el programa.
- use DBI;
- use ConectarDB;
- use strict;
- use warnings;
- use diagnostics;
- use autodie;
- # Cargar excel.
- my $excel = Spreadsheet::XLSX -> new ('test.xlsx');
- my($dbh,$sth);
- $dbh = ConectarDB->connect();
- $sth = $dbh->prepare("SELECT * FROM hoja1");
- $sth->execute();
- my @base_de_datos;
- while (my $ref = $sth->fetchrow_hashref()) {
- @base_de_datos = $ref->{'palabra'};
- }
- $sth->finish();
- $dbh->disconnect();
- my %excel;
- foreach my $sheet (@{$excel -> {Worksheet}}) {
- printf("Sheet: %s\n", $sheet->{Name});
- my$hoja = $sheet->{Name};
- $sheet -> {MaxRow} ||= $sheet -> {MinRow};
- foreach my $row ($sheet -> {MinRow} .. $sheet -> {MaxRow}) {
- $sheet -> {MaxCol} ||= $sheet -> {MinCol};
- foreach my $col ($sheet -> {MinCol} .. $sheet -> {MaxCol}) {
- my $cell = $sheet -> {Cells} [$row] [$col];
- if (exists $cell->{Val}and $cell->{Val} =~ m/h/i) {
- $excel = $cell->{'palabra'};
- }
- }
- }
- }
- ## Recorremos la base de datos
- my @palabras_borradas; # aquí guardaremos las palabras a eliminar
- for my $registro (@base_de_datos) {
- if (exists $excel{ $registro->{'palabra'} }) { # si existe la palabra en el Excel...
- delete $excel{ $registro->{'palabra'} }; # así que la borramos (ya la teníamos)
- }
- else { # no existe: el usuario la ha borrado
- push @palabras_borradas, $registro->{'palabra'};
- }
- }
- # en %excel quedarán las palabras nuevas que hay que meter en la base de datos
- print "Nuevos palabras a meter: ", join('/', keys %excel), "\n";
- # y en @palabras_borradas, las que hay que quitar de la base de datos
- print "Palabras a borrar: ", join('/', @palabras_borradas), "\n";
Coloreado en 0.009 segundos, usando GeSHi 1.0.8.4