• Publicidad

Reemplazar carácter en archivo Excel

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Reemplazar carácter en archivo Excel

Notapor lis » 2017-06-05 01:20 @097

Hola a todos, tengo una plantilla Excel que puedo leer y que busque todos los símbolos de porcentaje (%) y le anteponga un doble backslash (\\%) y lo muestre por pantalla. El problema es que una vez que realiza el cambio de forma simultánea a la hoja correspondiente no sé cómo acceder a una celda de manera individual. Agradezco enormemente su ayuda.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use Spreadsheet::Read;
  6.  
  7. my $ref = ReadData ("23052017.xls");
  8.  
  9. for my $fila    ( 3 .. 15 ) {
  10. for my $columna ( 3 .. 25 ) {
  11.  
  12.     my $cell  = $ref->[2]{cell}[$columna][$fila];
  13.  
  14.     $cell =~ s/%/\\%/;
  15.  
  16.     print $cell . "\n";
  17. }}
  18.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946

Publicidad

Re: Reemplazar carácter en archivo Excel

Notapor explorer » 2017-06-05 10:33 @481

¿A qué te refieres con "acceder"? Si es para leer el contenido de la hoja, sí que lo tienes puesto en la línea 12 (hoja 2, celda en la columna $columna y fila $fila.

Si te refieres a escribir en la hoja, necesitas otro módulo, ya que el Spreadsheet::Read solo te permite "leer".

Hay varios módulos para hacer eso. Uno de los más famosos es Spreadsheet::WriteExcel (y otro con una interfaz más sencilla: Spreadsheet::WriteExcel::Simple).

Un detalle interesante puede ser saber en qué entorno estás. Si estás en Windows, puedes trabajar con módulos con soporte del protocolo OLE, por lo que la modificación de datos puede ser un poco más sencilla y rápida, pero con el peligro de la inestabilidad del protocolo OLE (que, además, no sé si Microsoft lo sigue soportando en los últimos años). Digo que el trabajo "puede" ser más fácil, ya que se puede leer y escribir mediante OLE, que eso quiere decir que realmente lo que hacemos es que es el propio Excel el que está ejecutando nuestras órdenes.

Hay otros módulos que también dependen del tipo de documento a crear. Spreadsheet::WriteExcel crea documentos en formato XLS, pero Excel::Writer::XLSX lo hace en formato XLSX.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados