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 15 years ago

Closed 15 years ago

Last modified 15 years ago

#851 closed task (fixed)

Lectura de ficheros EXCEL desde TOL

Reported by: Víctor de Buen Remiro Owned by: Jorge
Priority: highest Milestone: TOL Extensions
Component: Excel API Version: head
Severity: blocker Keywords:
Cc:

Description (last modified by Víctor de Buen Remiro)

Es necesario disponer de una API de funciones de acceso a hojas EXCEL, al menos de lectura, que permita automatizar procesos de captura de datos desde archivos con formatos conocidos.

Sé que existe algo llamado VBTol pero no sé si es utilizable para esto.

La API de llamada podría ser algo así

//Abre un archivo excel y devuelve un identificador único
Real id = excel.open(Text filePath)

//Devuelve el número de hojas del archivo
Real excel.get.sheet.number(Real id)

//Devuelve el nombre de la n-ésima hoja o la cadena vacía si no
//existe
Text excel.get.sheet.name(Real id, Real n)

//Devuelve la posición de la hoja con el nombre indicado o 0 si no
//existe
Real excel.get.sheet.position(Real id, Text name)

//Devuelve el número de la última fila no vacía de una hoja
Real excel.get.last.row(Real id, Real sheetNumber)

//Devuelve el número de la última columna no vacía de una hoja
Real excel.get.last.col(Real id, Real sheetNumber)

//Devuelve el contenido de la celda indicada
Anything excel.get.cell(
  Real id, Real sheetNumber, 
  Real row, Real col)

//Devuelve el contenido de un rango de celdas en un conjunto
//tabular de conjuntos correspondientes a cada fila del rango
Set excel.get.rectangle(
  Real id, Real sheetNumber, 
  Real row.ini, Real col.ini, 
  Real row.end, Real col.end)

//Devuelve el contenido completo de una hoja en un conjunto tabular
//de conjuntos correspondientes a cada fila de la misma
Set excel.get.all(Real id, Real sheetNumber)

Real excel.close(Real id)

Change History (9)

comment:1 Changed 15 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:2 Changed 15 years ago by Jorge

Status: newaccepted

This could e a good candidate to implement the API, http://libxls.sourceforge.net/

comment:3 Changed 15 years ago by Jorge

(In [1987]) refs #851 : still working on ReadCell

comment:4 Changed 15 years ago by Jorge

(In [1989]) refs #851 : first approach to ReadCell on the active work sheet, still
need to find out how to translate date fields

comment:5 Changed 15 years ago by Jorge

(In [1990]) refs #851 : factoring into GetObjCell in order to reuse the code

comment:6 Changed 15 years ago by Jorge

Resolution: fixed
Status: acceptedclosed

(In [1991]) closes #851 --

  • usamos ExcelFormat en lugar de libxls
  • se debe encapsular en una Class
  • faltan metodos de lectura relativos a otras hojas distintas de la activa.
  • cualquier otra peticion debe dirigirse a un nuevo ticket.

comment:7 Changed 15 years ago by Jorge

(In [1992]) refs #851 : updating VC project in order to include contrib/excel

comment:8 Changed 15 years ago by Víctor de Buen Remiro

Component: DatabaseExcel API

comment:9 Changed 15 years ago by Jorge

(In [2481]) refs #851, sheet indices are 1-based

Note: See TracTickets for help on using tickets.