close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Closed 13 years ago

#1303 closed defect (fixed)

Libreria Excel

Reported by: JavierBarrocal Palmero Owned by: Jorge
Priority: normal Milestone: TOL Extensions
Component: Excel API Version: head
Severity: normal Keywords:
Cc: Javier Portugal

Description

Hola, al recoger la información de un excel y cargarla en un Set me encuentro con el siguiente problema:

Si la celda que quiero recoger es formato fecha me recoge su valor en número. Por ejemplo, si la fecha de la celda es 2011/09/14, el valor que recoge el set es 40800.0

He probado a poner distintos tipos de formato de fecha y con todos me sucede lo mismo.

La forma de generar el set es la siguiente.

//abrimos el fichero excel
Text XLSOpenExcel(ReplaceSlash(file), 0);

//seleccionamos la pestaña
Text XLSSelectWorksheetIndex(1);

// obtenemos la fila de fechas
Set miSetFecha = XLSReadRange("A1","H1");

Un saludo y muchas gracias de ante mano

Attachments (1)

test_fechas.xls (6.5 KB) - added by Jorge 14 years ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 14 years ago by Jorge

Component: KernelExcel API
Milestone: MantainanceTOL Extensions
Owner: changed from Víctor de Buen Remiro to Jorge
Status: newaccepted

Puedes decirme que versión de TOL estás usando?

comment:2 Changed 14 years ago by Jorge

El siguiente código, que hace uso del paquete TolExcel, lee correctamente las fechas. Nota que hay que indicar el formato de columna esperado en el argumento Set colDef. Si no le indicas el formato (colDef=Empty) entonces se lee como número que es la representación interna de las fechas en excel.

#Require TolExcel;

TolExcel::@WorkBook wb = TolExcel::@WorkBook::Open( "test_fechas.xls" );

Real wb::ActivateWS( 1 );

Set data = wb::ReadRange
  ( Real row_ini = 1,
    Real col_ini = 1,
    Real row_num = 1,
    Real col_num = 8,
    Set colDef = For( 1, 8, Date(Real k){ Copy(Today) } ) );

Set View( data, "Std" );

Real wb::Close( ? );

Changed 14 years ago by Jorge

Attachment: test_fechas.xls added

comment:3 Changed 13 years ago by Jorge

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.