Secciones de la página

Funciones Excel xls. tol

Funciones

Real XlsCopy()

Real XlsIsExcelXls()

Set XlsReadSheet()

Set XlsReadSheetOdbc()

Set XlsSetCtr()

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









Funciones de lectura Excel Xls xls.tol

Funciones que permiten construir lectores de ficheros Excel Xls, esto es, del Excel clásico de Office de Microsoft. Estos ficheros Excel tienen la extension xls.

Las funciones de esta página están ordenadas de forma alfabética por las diferentes gramáticas del lenguaje Tol ( Text, Set, Serie, Anything, Code, Date, Real,...) y, dentro de cada gramática, por el nombre de la función. Pueden encontrarse 2 o más funciones con idéntico nombre, pero con distintas maneras de programarse o con diferentes comentarios en diferentes idiomas, estas funciones aparecerán unas a continuación de las otras.

Real XlsCopy() de Xls.Reader

//////////////////////////////////////////////////////////////////////////////
Real XlsCopy(Text filInp, // Input file path
             Text filOut) // Output file path
//////////////////////////////////////////////////////////////////////////////
{
  Text dos(Text pth) { Char(34)+Replace(pth, "/", "\\")+Char(34) };
  
  If(!FileExist    (filInp), FALSE, // Si el origen no existe no se copia
  If(!XlsIsExcelXls(filInp), FALSE, // Si no es Excel Xls no se copia
      System("copy " + dos(filInp) + " " + dos(filOut))))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna cierto si pueda copiar el fichero filInp sobre filOut.
No se copia si el origen no existe o no es un Excel Xls.",
XlsCopy);
//////////////////////////////////////////////////////////////////////////////

Real XlsIsExcelXls() de Xls.Reader

//////////////////////////////////////////////////////////////////////////////
Real XlsIsExcelXls(Text inpPth) // Input path, the Xls Excel file path
//////////////////////////////////////////////////////////////////////////////
{
  If(!TextEndAt(ToLower(inpPth), ".xls"), FALSE, // Comprobar extension
  {
    Text ini2Ch = Sub(ReadFile(inpPth),1,2);
    ini2Ch == Xls2By                             // Comprobar el inicio
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna cierto si inpPth tiene la extension de un fichero Excel Xls y
sus 2 primeros bytes coinciden con los de un fichero Excel Xls.",
XlsIsExcelXls);
//////////////////////////////////////////////////////////////////////////////

Set XlsReadSheet() de Xls.Reader

//////////////////////////////////////////////////////////////////////////////
Set XlsReadSheet(Text xlsPth, // Direccion del fichero Excel
                 Text shtNam, // Nombre de la hoja a leer (sin $)
                 Text iniPos, // Posicion inicial tipo A1 o A
                 Text endPos) // Posicion final tipo Z9 o Z
//////////////////////////////////////////////////////////////////////////////
{ XlsReadSheetOdbc(xlsPth, shtNam, iniPos, endPos, XlsOdb, XlsBuf) };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una tabla, como conjunto de filas de conjunto de celdas, resultado
de leer del fichero Excel Xls de ruta xlsPth, la hoja shtNam,
desde la posicion iniPos a la posicion endPos.
Esta lectura Odbc mediante Sql asume que la primera fila del fichero Excel
son los nombres de los campos.
Las posiciones iniciales y finales pueden ser del tipo:
- A y K: lee de la columna A a la columna K todas las filas hasta el final o
- B4 y Z9: lee el rectangulo de celdas derminado por esas 2 esquinas.
Esta funcion asume la conexion Odbc (XlsOdb) y la ruta al fichero buffer Excel
por defecto (XlsBuf).",
XlsReadSheet);
//////////////////////////////////////////////////////////////////////////////

Set XlsReadSheetOdbc() de Xls.Reader

//////////////////////////////////////////////////////////////////////////////
Set XlsReadSheetOdbc(Text xlsPth, // Direccion del fichero Excel
                     Text shtNam, // Nombre de la hoja a leer (sin $)
                     Text iniPos, // Posicion inicial tipo A1 o A
                     Text endPos, // Posicion final tipo Z9 o Z
                     Text xlsOdb, // Nombre de la conexion Odbc
                     Text xlsBuf) // Rura del buffer Odbc
//////////////////////////////////////////////////////////////////////////////
{
  If(!XlsCopy(xlsPth, xlsBuf), Empty, // No se puede copiar
  {
    Real xlsOpn = DBOpen(xlsOdb, "", ""); // Sin usuario ni password
    Text xlsSql = "select * from ["+shtNam+"$"+iniPos+":"+endPos+"];";
    Set  xlsTab = DBTable(xlsSql);
    Real DBClose(xlsOdb);
    xlsTab
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una tabla, como conjunto de filas de conjunto de celdas, resultado
de leer del fichero Excel Xls de ruta xlsPth, la hoja shtNam,
desde la posicion iniPos a la posicion endPos.
Esta lectura Odbc mediante Sql asume que la primera fila del fichero Excel
son los nombres de los campos.
Las posiciones iniciales y finales pueden ser del tipo:
- A y K: lee de la columna A a la columna K todas las filas hasta el final o
- B4 y Z9: lee el rectangulo de celdas derminado por esas 2 esquinas.
Esta funcion recibe como parametros la conexion Odbc xlsObc y la ruta al
fichero buffer Excel en el parametro xlsBuf.
Retorna el conjunto vacio en caso de error.",
XlsReadSheetOdbc);
//////////////////////////////////////////////////////////////////////////////

Set XlsSetCtr() de Xls.Reader

//////////////////////////////////////////////////////////////////////////////
Set  XlsSetCtr(Text newBuf, // Camino del fichero Excel buffer por defecto
               Text newOdb) // Identificador Odbc por defecto
//////////////////////////////////////////////////////////////////////////////
{
  Set  oldVal = SetOfSet(Copy(XlsBuf), Copy(XlsOdb)); // Valores actuales
  Text(XlsBuf:=Copy(newBuf)); // Memoriza el nuevo buffer
  Text(XlsOdb:=Copy(newOdb)); // Memoriza la nueva conexion Odbc
  oldVal // Retorna los antiguos valores
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Memoriza el camino al fichero buffer Excel por defecto y a la conexion Odbc
que se emplearan a partir de la llamada a esta funcion, esto es, actualiza
los parametros de control.
Retorna los valores anteriores por si se desean restaurar posteriormente.",
XlsSetCtr);
//////////////////////////////////////////////////////////////////////////////

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol