Secciones de la página

Xls. Reader


Árbol de ficheros


Declaraciones


Inclusiones


Pruebas


Finalización


Time oriented language

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









make.tol de Xls.Reader

Las funciones de esta librería Xls.Reader permiten construir lectores de ficheros Excel Xls, la versión clásica de Microsoft, a través de una conexión Odbc de Windows de Microsoft. La funcionalidad de este fichero principal make.tol es sólo probar las diferentes funcionalidades de esta librería que se implementan dentro del fichero xls.tol. Esta librería asume que existe una conexión Odbc de nombre conocido y que se guarda en una de las variables de control llamada XlsOdb y que esta conexión Odbc apunta a un fichero Excel del tipo Xls.

Las conexiones Odbc apuntan a un fichero o base de datos concreto, por lo que para no tener que crear una conexión Odbc para cada fichero Excel que se quiera leer, la conexión Odbc ha de apuntar siempre a un fichero Excel especial que hace de buffer temporal de lectura y cuya ruta se puede cambiar a través de la variable de control, XlsBuf. En cualquier caso, para las principales funcionalidades de lectura de esta librería Xls.Reader, existen 2 versiones: a) la que lee usuando la conexión Odbc y el fichero buffer Excel que indiquen las variables de control XlsOdb y XlsBuf, respectivamente y b) otras funciones diferentes en las que el nombre de la conexión Odbc y la ruta del fichero Excel buffer se pasan como parámetros de entrada.

La librería Xls.Reader proporciona funcionalidades para: a) asignar la variable de control Odbc o usar el valor por defecto, b) asignar la variable de control del fichero Excel buffer o usar el fichero por defecto, c) verificar que es un fichero Excel del tipo Xls, d) para copiar el fichero Excel que se quiere leer sobre el buffer de lectura (que es el fichero al que apunta la conexión Odbc) y e) para leer un rango de celdas de una de las hojas del fichero Excel. La funcionalidad de lectura Excel Xls de esta librería, a través de Odbc, usa internamente la versión de Sql (Structured Query Language) limitada del Excel de Microsoft.

Para las pruebas de la funcionalidad de esta libraría Xls.Reader de lectura de Excel Xls a través de Odbc se han empleado: a) cuatro ficheros Excel de prueba, con diferentes volumentes y tipo de datos, que se guardan en el directorio dat y b) un fichero Excel buffer que se guarda en el directorio tmp. Pero pueden leerse otros ficheros Excel, emplearse otro buffer de lectura y ubicarlos en los directorios que se deseen. Con estos casos de prueba se ha comprobado el funcionamiento de las funciones de esta librería para las versiones de Tol 1.1.1, 1.1.5, 1.1.6 y 2.0.1.

Árbol de ficheros

Xls.Reader funciones de lectura de hojas Excel Xls a través de una conexión Odbc

  • make.tol programa de test de las funciones de lectura de Excel con Odbc
  • make.bat mandato de ejecución del programa de test de lectura Excel
  • tol directorios de fichero con código fuente Time Oriented Languaje
    • cmm funciones comunes del programa de lectura con Odbc de Excel Xls
      • xls.tol librería de funciones para leer Excel Xls a través de Odbc
    • inc.tol para la inclusión de ficheros en lenguaje de programación Tol
  • lectura.excel.xls.odbc.png imagen de la lectura Tol de un fichero Excel a través de Odbc
  • xls_reader.pdf documento de funciones de lectura con Odbc de ficheros Excel Xls

Declaraciones

Inclusiones

  • Set allInc
    Inclusion de las funciones comunes.

Pruebas

Inclusiones

Set allInc

//////////////////////////////////////////////////////////////////////////////
Set  allInc = Include("tol/inc.tol");
//////////////////////////////////////////////////////////////////////////////
PutDescription("Inclusion de las funciones comunes.", allInc);
//////////////////////////////////////////////////////////////////////////////

Pruebas

Real timIni

//////////////////////////////////////////////////////////////////////////////
Real timIni = Copy(Time);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Para controlar tiempos.", timIni);
//////////////////////////////////////////////////////////////////////////////

Real tst001

//////////////////////////////////////////////////////////////////////////////
Real tst001 = If(FALSE, // Poner true para realizar este test
{
  Set  View(SetOfReal(XlsIsExcelXls(XlsBuf)), ""); // Ha de ser cierto

  Set  carTab = XlsReadSheet("dat/car.xls", "Hoja1", "A", "I");
  Set  View(carTab, "");

  Card(carTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Primera prueba.", tst001);
//////////////////////////////////////////////////////////////////////////////

Real tst002

//////////////////////////////////////////////////////////////////////////////
Real tst002 = If(FALSE, // Poner true para realizar este test
{
  // Este Excel tiene 1 sola hoja,
  // por lo que se puede leer sin pasarle su nombre.
  Set  gasTab = XlsReadSheet("dat/gas.xls", "", "A", "H");
  Set  View(gasTab, "");

  Card(gasTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Segunda prueba.", tst002);
//////////////////////////////////////////////////////////////////////////////

Real tst003

//////////////////////////////////////////////////////////////////////////////
Real tst003 = If(FALSE, // Poner true para realizar este test
{
  Set  truTab = XlsReadSheet("dat/tru.xls", "", "A", "H");
  Set  View(truTab, "");

  Card(truTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Tercera prueba.", tst003);
//////////////////////////////////////////////////////////////////////////////

Real tst004

//////////////////////////////////////////////////////////////////////////////
Real tst004 = If(FALSE, // Poner true para realizar este test
{
  // De las 2 hojas de nombre complejo y sencillo, lee sencillo
  Set  tinTab = XlsReadSheet("dat/tin.xls", "sencillo", "A", "C");
  Set  View(tinTab, "");

  Card(tinTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Cuarta prueba.", tst004);
//////////////////////////////////////////////////////////////////////////////

Finalización

Text WriteLn("\nXls.Reader make: end ["+
             FormatReal((Time-timIni)/60,"%.2lf")+" m].");

Time oriented language

//////////////////////////////////////////////////////////////////////////////
// FILE    : make.tol
// AUTHOR  : http://www.asolver.com
// CLASS   : Excel; Sql
// VERSION : Tol 1.1.1; Tol 1.1.5; Tol 1.1.6; Tol 2.0.1
// PURPOSE : Las funciones de esta librería Xls.Reader permiten construir
// lectores de ficheros Excel Xls, la versión clásica de Microsoft,
// a través de una conexión Odbc de Windows de Microsoft.
// 
// La funcionalidad de este fichero principal make.tol es sólo probar las
// diferentes funcionalidades de esta librería que se implementan dentro del
// fichero xls.tol.
// 
// Esta librería asume que existe una conexión Odbc de nombre conocido y
// que se guarda en una de las variables de control llamada XlsOdb y que
// esta conexión Odbc apunta a un fichero Excel del tipo Xls.
// _
// Las conexiones Odbc apuntan a un fichero o base de datos concreto, por lo
// que para no tener que crear una conexión Odbc para cada fichero Excel que
// se quiera leer, la conexión Odbc ha de apuntar siempre a un fichero Excel
// especial que hace de buffer temporal de lectura y cuya ruta se puede
// cambiar a través de la variable de control, XlsBuf.
// 
// En cualquier caso, para las principales funcionalidades de lectura de esta
// librería Xls.Reader, existen 2 versiones:
// a) la que lee usuando la conexión Odbc y el fichero buffer Excel que
//    indiquen las variables de control XlsOdb y XlsBuf, respectivamente y
// b) otras funciones diferentes en las que el nombre de la conexión Odbc y
//    la ruta del fichero Excel buffer se pasan como parámetros de entrada.
// _
// La librería Xls.Reader proporciona funcionalidades para:
// a) asignar la variable de control Odbc o usar el valor por defecto,
// b) asignar la variable de control del fichero Excel buffer o usar el
//    fichero por defecto,
// c) verificar que es un fichero Excel del tipo Xls,
// d) para copiar el fichero Excel que se quiere leer sobre el buffer de
//    lectura (que es el fichero al que apunta la conexión Odbc) y
// e) para leer un rango de celdas de una de las hojas del fichero Excel.
// 
// La funcionalidad de lectura Excel Xls de esta librería, a través de Odbc,
// usa internamente la versión de Sql (Structured Query Language) limitada
// del Excel de Microsoft.
// _
// Para las pruebas de la funcionalidad de esta libraría Xls.Reader de lectura
// de Excel Xls a través de Odbc se han empleado:
// a) cuatro ficheros Excel de prueba, con diferentes volumentes y tipo de
//    datos, que se guardan en el directorio dat y
// b) un fichero Excel buffer que se guarda en el directorio tmp.
// 
// Pero pueden leerse otros ficheros Excel, emplearse otro buffer de lectura
// y ubicarlos en los directorios que se deseen.
// 
// Con estos casos de prueba se ha comprobado el funcionamiento de las 
// funciones de esta librería para las versiones de Tol 1.1.1, 1.1.5, 1.1.6 y
// 2.0.1.
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// INCLUDE
//////////////////////////////////////////////////////////////////////////////
Text WriteLn("\nXls.Reader make: begin");

//////////////////////////////////////////////////////////////////////////////
Set  allInc = Include("tol/inc.tol");
//////////////////////////////////////////////////////////////////////////////
PutDescription("Inclusion de las funciones comunes.", allInc);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// TEST
//////////////////////////////////////////////////////////////////////////////
Text WriteLn("\nXls.Reader make: test");

//////////////////////////////////////////////////////////////////////////////
Real timIni = Copy(Time);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Para controlar tiempos.", timIni);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Real tst001 = If(FALSE, // Poner true para realizar este test
{
  Set  View(SetOfReal(XlsIsExcelXls(XlsBuf)), ""); // Ha de ser cierto

  Set  carTab = XlsReadSheet("dat/car.xls", "Hoja1", "A", "I");
  Set  View(carTab, "");

  Card(carTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Primera prueba.", tst001);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Real tst002 = If(FALSE, // Poner true para realizar este test
{
  // Este Excel tiene 1 sola hoja,
  // por lo que se puede leer sin pasarle su nombre.
  Set  gasTab = XlsReadSheet("dat/gas.xls", "", "A", "H");
  Set  View(gasTab, "");

  Card(gasTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Segunda prueba.", tst002);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Real tst003 = If(FALSE, // Poner true para realizar este test
{
  Set  truTab = XlsReadSheet("dat/tru.xls", "", "A", "H");
  Set  View(truTab, "");

  Card(truTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Tercera prueba.", tst003);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Real tst004 = If(FALSE, // Poner true para realizar este test
{
  // De las 2 hojas de nombre complejo y sencillo, lee sencillo
  Set  tinTab = XlsReadSheet("dat/tin.xls", "sencillo", "A", "C");
  Set  View(tinTab, "");

  Card(tinTab)
},FALSE);
//////////////////////////////////////////////////////////////////////////////
PutDescription("Cuarta prueba.", tst004);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// END
//////////////////////////////////////////////////////////////////////////////
Text WriteLn("\nXls.Reader make: end ["+
             FormatReal((Time-timIni)/60,"%.2lf")+" m].");

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

Tol