PDA

Ver la Versión Completa : Como pasar de EXCEL A PARADOX


User_Baja_2
15-01-2004, 01:41:28
Hola tngo un fichero en EXCEL con el contenido de unos productos con sus correspondientes precios y quisiera hacer un traspaso de estos datos a una tabla de paradox (*.db). ¿Alguien conoce el modo o manera de poder realizar ste traspaso?

roman
15-01-2004, 02:21:38
La forma más sencilla es abrir el archivo en Excel y guardarlo como archivo de Paradox.

Pero si lo quieres hacer mediante un programa tienes dos opciones (entre otras seguramente). Usar las componentes de Office (en la paleta Servers) para conectarte a una hoja de Excel de donde puedes con un ciclo copiar los valores de las celdas a una tabala paradox que previamente crees con la estructura adecuada.

Un ejemplo para esto:


var
Libro: _WORKBOOK;
Hoja: _WORKSHEET;

begin
Libro := Excel.Workbooks.Open(
'tuarchivo.xls',
false,
false,
null,
'',
null,
true,
null,
'',
true,
null,
null,
false,
0
);
Hoja := Libro.Sheets[1] as _WORKSHEET;
Excel.Visible[0] := true;


donde Excel es una componente de tipo TExcelApplication.

Y accedes a las celdas con

Hoja.Cells.Item[Row, Column] (índices están basados en 1)

Así, suponiendo que tu archivo tiene dos columnas (producto y precio) te creas una tabla paradox con las correspondientes columnas y usas una componente Table conectada a ella para copiar la hoja de Excel con un ciclo:


for Row := 1 to MaxRow do
begin
Table.Append;
Table['producto'] := Hoja.Cells.Item[Row, 1];
Table['precio'] := Hoja.Cells.Item[Row, 2];
Table.Post;
end;


La otra opción es usar ADO que te permite conectarte a una hoja de Excel como si fuera una tabla en una base de datos. En este enlace (http://www.clubdelphi.com/foros/showpost.php?p=10844&postcount=5) puedes encontrar un ejemplo de conección con ADO y cómo copiar con un ciclo de la tabla ADO a la tabla Paradox.

// Saludos

sitrico
21-01-2004, 16:08:18
Estoy tratando de pasar una tabla de excel a paradox usando el método de ADO pero el archivo excel lo creo con el componente tDataToXLS de tExpSuit (delphi.com.ar) me aparece el error:

"External table is not in the expected format"

ó

"Could not find installable ISAM"

(ademas cuando selecciono el archivo me sugiere *.mdb no *.xls) creo que parte del error es la utilizacion de "Excel 8.0" ya que la tabla que crea expSuit es formato 2.0 o algo así (no tiene varias hojas) el connection string es:


Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Mis documentos\Arancel del Usuario.xls;Extended Properties=Excel 2.0;Persist Security Info=False


Intenté con Excel 2.0 y me aparece el segundo error con otros valores aparece el primero (al correr la aplicacion y al tratar de seleccionar el CommandText

Alguien puede ayudarme


Gracias

roman
21-01-2004, 16:24:43
¿Qué versión de Excel tienes?
¿Has intentado abrir el archivo que genera tDataToXLS directamente en Excel?
¿Qué pasa si lo abres en Excely lo guardas con la versión que tienes?

// Saludos

pd: Por favor edita tu mensaje para partir en dos líneas la cadena de provider para que puedan visualizarse los mensajes sin tener que recorrer horizontalmente la pantalla.

sitrico
21-01-2004, 16:49:39
Tengo Excel 2000 (9.0.2812), pero el problema es que el archivo que genera TDataToXls es Excel 2.1.

Mientras respondías baje un ejemplo de:

http://community.borland.com/article/1,1410,20066,00.html

Que funciona perfecto con la hoja de ejemplo (forecast.xls) pero si trato de conectarlo a mi hoja me aparecen toda clase de errores (sobre todo en el select * from 'nombre hoja'), también traté de abrir el archivo en excel y guardarlo con el formato nuevo y sucede lo mismo.

Lo cierto es que no ayuda mucho tener que explicarle al usuario que debe "actualizaar la versión del archivo exportado porque el mismo programa que lo exportó no lo puede importar" eso no se lo deseo a nadie :-) Tal vez intente con otro formato (no xls).